Lan Yiyun: Linux でプロセスを作成するためによく使用される 3 つのコマンドを詳しく説明します。

Linux でプロセスを作成する場合、この目的を達成するために一般的に使用される 3 つのコマンドがありますfork:execと waitこれら 3 つのコマンドについて詳しく説明します。

1. fork コマンド:
forkこのコマンドは、新しいプロセスを作成するために使用されます。新しいプロセスは、現在のプロセス (親プロセス) のコピーです。コード、データ、ファイル記述子、プロセス コンテキスト、および親プロセスのその他の情報を継承します。親プロセス。新しいプロセスと親プロセスは forkコマンドに続くコードを同時に実行するため、異なるブランチで異なる操作を実行できます。

forkこのコマンドにはパラメータはなく、構文は次のとおりです。

#include <sys/types.h>
#include <unistd.h>

pid_t fork(void);

コマンドの呼び出しが成功する forkと、コマンドは 2 回戻ります。1 回目は親プロセスで、新しく作成された子プロセスの PID (プロセス ID) を返し、もう 1 回は子プロセスで 0 を返します。失敗した場合は -1 を返します。

2. exec コマンド:
execこのコマンドは、現在のプロセスで新しいプログラムを実行するために使用されます。コマンドが呼び出されると exec、現在のプロセスのコードとデータは新しいプログラムのコードとデータに置き換えられますが、プロセスの PID やファイル記述子などの情報は変更されません。これにより、完全に新しいプロセスを作成しなくても、現在のプロセスで新しいプログラムを開始できます。

execこのコマンドには execlexecvexecleexecveなどの複数のバリエーションがあり、さまざまなニーズに応じてコマンド ライン パラメータや環境変数などの情報を渡すことができます。

3. wait コマンド:
waitこのコマンドは、子プロセスの終了を待つために親プロセスによって使用されます。親プロセスが子プロセスを作成する場合、子プロセスの終了後も親プロセスのコードを実行し続けたい場合は、コマンドを使用できます waitwaitこのコマンドは、子プロセスが終了するまで親プロセスを一時停止します。子プロセスが終了した場合、waitコマンドはすぐに戻ります。

waitこのコマンドにはパラメータはなく、構文は次のとおりです。

#include <sys/types.h>
#include <sys/wait.h>

pid_t wait(int *status);

このうち、statusパラメータは子プロセスの終了ステータスを受け取るために使用され、子プロセスの終了ステータスを判断するために使用できます。

要約すると、forkこのコマンドは新しいプロセスを作成するために使用され、execコマンドは現在のプロセスで新しいプログラムを実行するために使用され、waitコマンドは親プロセスが子プロセスの終了を待つために使用されます。これら 3 つのコマンドを組み合わせることで、複雑なプロセス管理と制御が可能になります。

おすすめ

転載: blog.csdn.net/tiansyun/article/details/133363972