GNU/Linux >> Linux の 問題 >  >> Linux

os.execlp を使用する場合、`python` が argv として `python` を必要とする理由 [0]

Python を実行すると、 sys.argv が作成されます あなたのために。そのリストの値はベースです オペレーティングシステムから渡された引数に基づいていますが、オフ sys.executable そのリストからの値。

つまり、Python が呼び出されると、sys.argv が設定されます。 ただし、それは独自の実行可能ファイル .

new を呼び出したとき os.execlp() 経由で実行可能 、OSが実行する実行可能ファイルであるため、Pythonを含める必要があります。 os.execlp() に渡すものの最初の 2 つの値 sys.argv にあるものは何でも、まだ必要です


2 番目の python は python の名前で、任意の文字列にすることができますが、そこにある必要があります。

2 番目の段落を参照してください http://docs.python.org/3/library/os.html?highlight=os.exec#process-management の:

<ブロック引用>

さまざまな exec* 関数は、プロセスにロードされた新しいプログラムの引数のリストを取ります。いずれの場合も、これらの引数の最初のものは、ユーザーがコマンド ラインで入力した引数としてではなく、独自の名前として新しいプログラムに渡されます。 C プログラマの場合、これはプログラムの main() に渡される argv[0] です。たとえば、os.execv('/bin/echo', ['foo', 'bar']) は標準出力にバーのみを出力します。 foo は無視されるようです。


Linux
  1. C で tmpfile() を使用する場合の一時ファイルの場所

  2. screen を bash で使用すると、$LD_LIBRARY_PATH が設定解除されるのはなぜですか?

  3. cd 使用時の / の使用

  1. なぜ誰もがDockerを使用しているのですか?

  2. trace.py を使用して Python スクリプトをトレースする方法

  3. innodb_file_per_table を使用する理由

  1. Vlcを使用しているときに、スクリーンセーバーが起動し続けるのはなぜですか?

  2. Python を使用してマウス デルタを取得します。 (Linux の場合)

  3. sudo の使用時にコマンドが見つからない