C言語の研究ノート - プロセスとシステムコール

A.使用して、システムのシステムコール

システム()文字列パラメータを受信し、コマンドの実行とみなし

例えば:

ディスクDの内容を印刷する:システム(「DIRのD」)

Linuxでは、エディタを起動するためのシステム(「geditの」)

システムは、Mac上のテキストを読むために(「『行の終わり』を言います」)

II。ELEC()システムコールを使用します

プロセスが成功したときELEC関数は、関数呼び出しをunistd.hヘッダファイルに配置され、システムは、プログラム呼び出しを実行するために、現在のプログラムの実行を停止します。

elecl()=パラメータリスト

elecle()= +環境変数パラメータリスト

eleclp()= PATH検索パラメータリスト+

elecv()=パラメータ配列

elecve()= +環境変数パラメータ配列

elecvp()= +検索パラメータアレイPATH

ELECを使用する場合は()関数は、NULLが引数リストを終了し使用する必要があります

getenv()関数を使用することができる環境変数を読み込み、

3つの変数が.errno

errno変数はグローバル変数で定義されているERRNO.H

EXEC()関数呼び出しは-1を返しますエラー、システムエラーを再びエラーコードにはerrno変数を呼び出し中

errnoにコードの標準誤差:

EPERM = 1つの操作は許可されていません

ENOENT = 2いいえそのようなファイルまたはディレクトリ

プロセスがないESRCH = 3であります

STRERRORはエラーコードメッセージを変換するために使用することができます

プット(strerrot(エラー番号));

IV。フォーク()クローニングプロセスを使用します

現在のプロセスをコピーするフォーク()関数を使用します

成功した実行のexec()の後、元のプログラムサイクルの実現を容易にするため、現在のプロセスをコピーして、Execは、子プロセスを作成し実行するためにfork関数を使用して、親プロセスが現在のプロセスに置き換えられます

どのように使用するには:

pid_t PID =フォーク()

フォークは、子供が0を返すように整数を返し、親プロセスは正数を返し、親は子プロセスの識別子を受信します

pid_t関数は、プロセス識別子を記憶するために使用されます

フォーク()+のexec()を組み合わせ、既存のソフトウェアをより有効に活用するだけでなく、プログラムのパフォーマンスを向上させるためだけではなく、別のプロセスを作成して実行し、使用してください。

 

おすすめ

転載: www.cnblogs.com/renren-study-notes/p/11754436.html