进程间通信(IPC)全解析
1. 进程创建与同步问题
在进程编程中, fork() 函数常被用于从父进程创建子进程。以下是一个简单示例:
#include <unistd.h>
#include <iostream>
#include <sys/wait.h>
int main(void)
{
if (fork() != 0) {
std::cout << "parent\n";
wait(nullptr);
}
else {
std::cout << "child\n";
}
}
通常情况下,我们可能会看到先输出 parent 再输出 child 。这是因为操作系统启动子进程的时间可能比子进程输出内容的时间长。若让父进程执行时间变长,子进程就会先输出,如下例所示:
#include <unistd.h>
#include <iostream>
#include <sys/wait.h>
int main(void)
{
if (fork() != 0) {
sleep(1);
std::cout << "parent\n";
wait(nullptr);
}
else {
超级会员免费看
订阅专栏 解锁全文
1507

被折叠的 条评论
为什么被折叠?



