操作系统之fork()函数
int main() {
pid_t pid;
// 在执行fork()函数前,系统只有一个进程在执行
pid = fork();
// 此后出现两个一样的进程,也就是说需要执行下面的代码两次
/*
* fork()函数一共返回两次,:
* 在父进程中,返回新创建的子进程的pid
* 在子进程中,返回0
* 出现错误,则返回负数
*
*/
if (pid < 0) {
cout << "pid < 0 and error ocur!" << endl;
}
if (pid == 0) { // 第二次返回pid==0,说明此时在执行那个克隆出的一摸一样的子进程
cout << "pid == 0" << endl;
cout << "当前进程:" << getpid() << endl;
cout << "当前父进程:" << getppid() << endl;
}
if (pid > 0) { // 第一次返回pid>0,这是子进程的pid
cout << "pid > 0" << endl;
cout << pid << endl;
cout << "当前进程:" << getpid() << endl;
cout << "当前父进程:" << getppid() << endl;
}
return 0;
}
/*
pid > 0
7431
当前进程:7430
当前父进程:277
pid == 0
当前进程:7431
当前父进程:1
*/