ソフトウェア

Linux / Unixコマンド「execvp」

著者: Robert Simon
作成日: 22 六月 2021
更新日: 12 5月 2024
Anonim
Cでコマンドを実行する
ビデオ: Cでコマンドを実行する

コンテンツ

エグゼクティブ 関数ファミリーは、現在のプロセスイメージを新しいプロセスイメージに置き換えます。ここで説明する関数は、関数のフロントエンドです実行する(2). 

これらの関数の最初の引数は、実行されるファイルのパス名です。

const char * arg とその後の楕円execlexeclp、およびエクセル 関数は次のように考えることができますarg0arg1, ..., アーグン。これらは一緒に、実行されたプログラムで使用可能な引数リストを表す、ヌル終了文字列への1つ以上のポインターのリストを記述します。慣例により、最初の引数は、実行中のファイルに関連付けられたファイル名を指す必要があります。引数のリストしなければならない によって終了するヌル ポインタ。


execv そしてexecvp 関数は、新しいプログラムで使用できる引数リストを表すnullで終わる文字列へのポインターの配列を提供します。慣例により、最初の引数は、実行中のファイルに関連付けられたファイル名を指す必要があります。ポインタの配列しなければならない によって終了するヌル ポインタ。

エクセル 関数はまた、実行されるプロセスの環境を次のように指定しますヌルパラメータリスト内の引数のリストを終了するポインタ、または追加のパラメータを持つargv配列へのポインタ。この追加パラメーターは、ヌル終了ストリングへのポインターの配列であり、しなければならない によって終了するヌル ポインタ。その他の関数は、外部変数から新しいプロセスイメージの環境を取得します環境 現在のプロセスで。

これらの関数の一部には特別なセマンティクスがあります。

機能execlp そしてexecvp 指定されたファイル名にスラッシュ(/)文字が含まれていない場合、実行可能ファイルを検索する際のシェルのアクションを複製します。検索パスは、環境で指定されたパスです。 変数。この変数が指定されていない場合、デフォルトのパス「:/ bin:/ usr / bin」が使用されます。さらに、特定のエラーは特別に処理されます。


ファイルへのアクセスが拒否された場合(試行された実行する 戻ってきたEACCES)、これらの関数は、残りの検索パスの検索を続行します。ただし、他のファイルが見つからない場合は、グローバル変数とともに返されますエラー に設定EACCES.

ファイルのヘッダーが認識されない場合(試行された実行する 戻ってきたENOEXEC)、これらの関数は、最初の引数としてファイルのパスを使用してシェルを実行します。 (この試みが失敗した場合、それ以上の検索は行われません。)

戻り値

のいずれかエグゼクティブ 関数が戻ると、エラーが発生します。戻り値は-1で、グローバル変数エラー エラーを示すように設定されます。

使用おとこ コマンド(% おとこ)特定のコンピューターでコマンドがどのように使用されるかを確認します。

名前

execl、execlp、execle、execv、execvp —ファイルを実行する


あらすじ

#include

extern char **環境;

int execl(const char *、const char *arg、...); int execlp(const char *ファイル、const char *arg、...); int execle(const char *、const char *arg 、...、char * constenvp[]); int execv(const char *、char * constargv[]); int execvp(const char *ファイル、char * constargv[]);  

私たちの選択

フレッシュパブリケーション

iPhoneでスクリーンショットを撮る方法
Tehnologies

iPhoneでスクリーンショットを撮る方法

iPhoneのスクリーンショットを使用して、誰かの言葉の写真を保存し、面白いまたは重要な瞬間をキャプチャします。 iPhoneには、スクリーンショットを撮るための専用アプリがありません。これは、デバイスのボタンを押して画面をキャプチャするためです。 この記事の手順は、iO 2.0以降を実行しているデバイスに適用されます。 iPhone、iPod Touch、iPadでスクリーンショットを撮るには...
Libmmd.dllが見つからない、または見つからないエラーを修復する方法
ソフトウェア

Libmmd.dllが見つからない、または見つからないエラーを修復する方法

Libmmd.dllエラーは、libmmd DLLファイルの削除または破損につながる状況が原因で発生します。 場合によっては、libmmd.dllエラーは、レジストリの問題、ウイルスまたはマルウェアの問題、さらにはハードウェアの障害を示す可能性があります。 libmmd.dllエラーがコンピュータに表示されるいくつかの異なる方法があります。 libmmd.dllエラーが表示される可能性のある一般...