#include <stdio.h>
#include <unistd.h>
#include <sys/wait.h>
int main( int argc, char *argv[] ){
FILE *fptr;
pid_t pid;
fptr = fopen("Shared File.txt", "a");
pid = fork();
if( pid > 0 ){ // parent process
int counter = 0;
while( counter < 10 ){
fprintf(fptr, "a");
++counter;
}
wait(NULL);
}
else{
int counter = 0;
while( counter < 5 ){
fprintf(fptr, "b");
++counter;
}
}
return 0;
}
当我执行此代码时,代码生成的文件包含以下消息:bbbbbaaaaaaaaa
每当我执行此代码时,我都会收到相同的消息。为什么进程不按洗牌顺序写入文件?
为什么操作系统首先尝试完成子进程?
我对消息的期望是这样的: baabbaaabaaabaa 进程之间没有连续的过渡。