I 2つのプロセスを作成したいとフォークで1親プロセス()fork()を使ってLinuxで子プロセスを作成する方法と、2つの方法が異なる方法を知りたいですか?
最初の方法:
#include<stdio.h>
#include<unistd.h>
#include<sys/types.h>
int main(void){
pid_t b,c;
printf("a");
if(0 == (b = fork())){
printf("b");
}
if(0 == (c = fork())){
printf("c");
}
return 0;
}
第二の方法:これらのコードを実行した後
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
int main(int argv,char ** argc){
pid_t fpid1,fpid2;
fpid1 = fork();
if(fpid1 == 0){
printf("b");
}else{
fpid2 = fork();
if(fpid2 == 0){
printf("c");
}else{
printf("a");
}
}
return 0;
}
、私が見つけました答えは異なる 最初は
a
b
c
2番目は ランダム
iは忘れてしまったfpid2 = fork();ごめんなさい!! は私
おそらく混同以下で
第スニペットプリントを、(
stdout
を仮定すると、ラインバッファリングされます)これらの「ランダム」出力の1つを表示するのはどうですか? – alk1番目のスニペットで表示される出力が不完全です。 – alk