【发布时间】:2013-08-20 07:22:11
【问题描述】:
我正在使用 c 在 linux 操作系统中进行过程控制。
fork() 函数真的让我很困惑。
我所知道的:当fork() 被调用时
1) fork() 之后的任何代码都被复制到子进程。
2)我们无法确定哪个(父母或孩子)将首先运行。
我运行以下代码。
int main() {
printf("Hi");
fork();
return 0;
}
我的第一个问题是:为什么我得到两次 Hi? Working of fork() in linux gcc 中对此进行了解释,但我仍然希望有人更简单地解释。
我的第二个疑问: 当我将输出重定向到 somefile.txt 即使我使用换行符(\n),输出也是:
嗨
嗨
请解释...
如果我错过了请提供一些细节,以了解fork()
【问题讨论】:
-
@OliCharlesworth:- OP 已经提到他已经阅读了“Linux gcc 中 fork() 的工作”问题的解释。可他好像搞不清楚啊!!!! :)
-
@RahulTripathi:我意识到这一点,但再次问完全相同的问题是不合适的。相反,他/她应该具体说明他们对上一个问题/答案的不理解。
-
@OliCharlesworth:- 同意先生!!!
-
@OliCharlesworth:先生,如果我在评论中提出同一个问题,那么即使您告诉我,如果您有问题,最好单独提出。
标签: c gcc linux-kernel fork process-control