当前位置: 首页 > Linux

linux下的进程(一)

时间:2023-04-06 04:14:36 Linux

linux是每一个系统在linux下创建新进程process时不可或缺的一部分。每个进程都有一个唯一的进程ID,它是一个非负整数。进程ID标识符始终是唯一的。通常,在linux中创建一个进程与fork()函数是一样的。函数原型fork()pid_tfork(void)这个函数的主要特点是返回两个值,子进程返回0,父进程返回子进程ID。出错时返回-1。让我们通过一个例子来理解这个函数。#include#include#include#includeintmain(void){pid_tpid;int全局x=2;如果((pid=fork())>0){inta=1;printf("parentis%d\n",a)}elseif(pid==0){inta=1;一个++;printf("childis%d\n"n",a);}else{printf("error");}printf("allhave:%d\n",globalx);exit(0);}结果从这个例子来看,其运行过程如下,唯一不同的是pid>0下的代码和pid==0下的代码。fork()后,父函数和子函数实现不同的代码段,不执行相互影响,再看一个例子。#include#include#include#includeintmain(void){pid_tpid;int全局x=2;如果((pid=fork())>0){inta=1;for(inti=0;i<10;i++)printf("parentis%d\n",a);}elseif(pid==0){inta=1;一个++;for(inti=0;i<10;i++)printf("孩子是%d\n",a);}else{printf("错误");}printf("全部有:%d\n",globalx);exit(0);}运行结果如下。当我们为这两个代码块添加一个循环时,我们可以发现子进程和父进程可以说是独立的。没有优先权。如果子条目和父进程同时对文件进行操作,则需要考虑这一点。以上基本上就是fork()函数的两大特点。如有错误和遗漏,请指出并补充。