- 1
- 0
- 约3.33千字
- 约 12页
- 2017-05-30 发布于北京
- 举报
Linux进程控制函数 fork() #include unistd.h #includesys/types.h pid_t fork( void ); 一个现有进程可以调用fork函数创建一个新进程。由fork创建的新进程被称为子进程。子进程是父进程的副本,它将获得父进程数据空间、堆、栈等资源的副本。 pid_t 是一个宏定义,其实质是int,定义sys/types.h中。 返回值: 若成功调用一次则返回两个值,子进程返回0,父进程返回子进程ID;否则,出错返回-1。 注意:子进程持有的是上述存储空间的“副本”,这意味着父子进程间不共享这些存储空间。linux将复制父进程的地址空间内容给子进程,因此,子进程有了独立的地址空间。 为什么fork()会返回两次? 由于在复制时复制了父进程的堆栈段,所以两个进程都停留在fork函数中,等待返回。因此,fork函数会返回两次。 一次是在父进程中返回,另一次是在子进程中返回,这两次的返回值是不一样的。 示例代码 #includesys/types.h #includeunistd.h #includestdio.h int main(int argc, char ** argv ) { int pid = fork(); if (pid == -1 ) {
原创力文档

文档评论(0)