【发布时间】:2020-02-02 02:38:48
【问题描述】:
我有这个sn-p 代码,我想确定有多少进程run_morecompute。我正在学习操作系统,但我正在为分叉的概念而苦苦挣扎。
谢谢
void run_morecompute(int i){
printf("hello world");
}
void run_compute(int i) {
int cpid = fork();
if (cpid == 0)
run_morecompute(i);
}
int main (){
int pid;
for (int i = 0; i < 4; i++) {
pid = fork();
if (pid == 0){
printf("\n%d",i);
run_compute(i);
}
}
}
【问题讨论】:
-
将
\n放在 printf 格式字符串的末尾,而不是开头。 Stdout 是行缓冲的,因此在您打印换行符之前不会打印该行。 -
为什么
run_morecompute()不使用i参数? -
你不能只计算
hello world被打印的次数吗?你有什么问题?
标签: c process operating-system fork