linux

  
でのfork関数の使用

システムプログラミングを学ぶとき、私は将来の学習のために記録されたforkの使い方を学びました。

fork関数は新しいプロセスを作成するために使用されます。 Br>

#include #include

#include

#include

int main(void)

{

pid_t Pid;

char *メッセージ;

int n;

pid = fork();

if(pid< 0){

perror(" fork failed");

exit(1);

}

if(pid == 0){

Message = "これは子です。\\ n";

n = 3;

} else {

message = "これは親です\\ n"; < Br>

n = 6;

}

for(; n> 0; n--){

printf("%s"、メッセージ) );;

sleep(1);

}

戻り値0;

}

プログラムの実行結果

戻り値:子プロセスは0を返し、親プロセスは子プロセスのIDを返し、エラーがある場合は-1を返します。

fork関数は1回呼び出されますが2回返され、1回だけ返されます。違いは、子プロセスの戻り値は0で、親プロセスの戻り値は新しいプロセスのプロセスID番号です。子プロセスIDを親プロセスに返す理由は、プロセスには複数の子プロセスが存在する可能性があり、プロセスがそのすべての子プロセスのプロセスID番号を取得できないためです。 fork関数が子プロセスを0に戻すのは、プロセスは1つの親プロセスしか持たないため、子プロセスは常にgetppidを呼び出してその親プロセスのプロセスIDを取得できるためです。

Copyright © Windowsの知識 All Rights Reserved