exec呼び出しシリーズでは、pとeは何を表していますか?

exec呼び出しシリーズでは、pとeは何を表していますか?

lvパラメータがリストを介して渡されるのか、exec呼び出しに渡されるのかを示しますarray(vector)pユーザーのパスとe環境を意味するという内容をどこかで読んだのですが、どういう意味なのか理解できませんか?

答え1

確認するExec機能へのWikipediaリンクそしてこのリンクは、exec()呼び出しを使用してプロセスを開始する方法に関するものです。

e – 新しいプロセスイメージに明示的に渡された環境変数へのポインタの配列。

「e」サフィックスが付いたバージョンは、環境をプログラムに渡します。環境は、プログラムが実行される「コンテキスト」です。たとえば、単語辞書を含むスペルチェッカーがあるとします。毎回コマンドラインで辞書の場所を指定する代わりに、環境に提供できます。

l – コマンドライン引数が関数に個別に渡されます(リスト)。

たとえば、-t、-r、および-lパラメーター(「出力を時系列順に並べ替え、長いバージョンの出力を表示する」という意味)を使用してlsコマンドを呼び出す場合は、どちらかを指定できます。 。

p – PATH環境変数を使用して、実行するパスパラメータで指定されたファイルを見つけます。

"p"サフィックスが付いたバージョンは、PATH環境変数のディレクトリから実行可能ファイルを検索します。すべての例には、実行可能ファイルのハードコードされた場所(/bin/lsおよび/usr/bin/spellcheck)があることがわかります。他の実行ファイルはどうですか?特定のプログラムの正確なパスを最初に探したくない場合は、ユーザーにプログラムに実行可能ファイルのすべての場所を検索するように指示することをお勧めします。標準のPATH環境変数がこれを行います。

v - コマンドライン引数は、ポインタ配列(ベクトル)として関数に渡されます。

パラメータリストは、パラメータベクトルへのポインタを介して指定されます。

他の回答で述べたように、Unixシステムコールへのこのリンク追加の読書にもおすすめです。

答え2

~によるとhttp://www.di.uevora.pt/~lmr/syscalls.htmlで、サフィックスはパラメータの種類を表します。

    l  argn is specified as a list of arguments.

    v  argv is specified as a vector (array of character pointers).

    e  environment is specified as an array of character pointers.

    p  user's PATH is searched for command, and command can be a shell program

関連情報