私はC++で書かれたプログラムとpythonの間でデータを渡しています。C++プログラムにコマンドライン引数で渡すことができるデータの量は?
私はこれを行うための最も簡単な方法の一つ発見しましたが、その後、ちょうどsubprocess.call('cprog.exe arg1 arg2', shell=True)
を使用してPythonでそれを呼び出すと、これはCythonを使用して回避し、引数arg1, arg2.... etc
を介してデータを転送するために、C++プログラムをコンパイルすることで、ブーストなど...私が見つけたことは、窓に取り組むには大きな苦痛です。特に、インターネットに接続されていないエージングサーバでは、 (この投稿に返信してcythonやブーストなどを助けようとしないでください - 私は議論を主題に限定したい)。
私の質問は:このアプローチの限界は何ですか?
データの配列全体をシリアル化/エンコード/デコードして、このようにコマンドライン引数で渡すことはできますか?サイズが数ギガバイトのファイルはどうですか?
これは、ハードドライブへの書き込みよりも速いアプローチでしょうか?
EDIT:これが関連しているようだ: Maximum Length of Command Line String
C++言語仕様では、 'main()'に渡されるコマンドライン引数の最大サイズは指定されていません。実際の制限は、オペレーティングシステムによってまったく異なります。 –
リムニットがあるOSによって異なりますが、リムニートがあります。一般的な方法は、stdinを使うことです。 –
あなたの回答に基づいて、私は検索条件を変更し、これを見つけました: https://stackoverflow.com/questions/3205027/maximum-length-of-command-line-string 私は答えが含まれていると思います!ありがとう – Ben