码迷,mamicode.com
首页 > 系统相关 > 详细

Ubuntu部分函数

时间:2019-11-21 20:01:56      阅读:83      评论:0      收藏:0      [点我收藏+]

标签:include   nis   err   erro   else   原因   部分   有一个   设置   

fork():

  •      pid=fork()之前,只有一个进程在执行这段代码,但在这条语句之后,就变成两个进程在执行了,这两个进程的代码部分完全相同。

 

两个进程中,原先就存在的那个被称作“父进程”,新出现的那个被称作“子进程”。父子进程的区别除了进程标志符(process ID)不同外,变量pid的值也不相同,pid存放的是fork的返回值。

  •       fork调用的一个奇妙之处就是它仅仅被调用一次,却能够返回两次,它可能有三种不同的返回值:

 

  1. 在父进程中,fork返回新创建子进程的进程ID;
  2. 在子进程中,fork返回0;
  3. 如果出现错误,fork返回一个负值;

fork出错可能有两种原因:(1)当前的进程数已经达到了系统规定的上限,这时errno的值被设置为EAGAIN。(2)系统内存不足,这时errno的值被设置为ENOMEM。

/* fork_test.c */
#include<sys/types.h>
#inlcude<unistd.h>
int main()
{
     pid_t pid;
 
     /*此时仅有一个进程*/
     pid=fork();
     /*此时已经有两个进程在同时运行*/
     if(pid<0) printf("error in fork!");
     else if(pid==0) printf("I am the child process, my process ID is %d/n",getpid());
     else printf("I am the parent process, my process ID is %d/n",getpid());
return 0; }

 

Ubuntu部分函数

标签:include   nis   err   erro   else   原因   部分   有一个   设置   

原文地址:https://www.cnblogs.com/hua-dong/p/11907744.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!