fork和vfork有什么区别,作为嵌入式工程师,这个肯定是要掌握的。
不管是fork还是vfork,他们都是为了创建子进程。
函数原型一样,没有参数,但是返回值比较奇怪,别的函数都是只有一个返回值,但是fork和vfork有两个。
#include就拿fork来说,程序刚运行的时候,只有一个父进程在运行,执行了fork系统调用后,多了一个子进程,你可以理解成有两个人在执行这段代码,父进程的fork返回子进程的ID,子进程的fork返回0,所以代码运行的现象就是fork存在两个返回值,if语句会进入两个分支。#include int main() { pid_t pid = fork(); if (-1 == pid) { perror("fork"); exit(-1); } else if (0 == pid) { printf("this is child ... "); } else { printf("this is parent ... "); } return 0; }
全部0条评论
快来发表一下你的评论吧 !