摘要:函数的原型这个函数的主要主要特色是返回两次值,子进程返回,父进程返回子进程。运行的结果如下当我们在那两个代码块加入循环时,就可以发现子进程和父进程,可以说时各自独立的,它们之间没有先后关系。
linux下创建新的进程
进程时每一个系统下必不可少的一个部分。每一个进程都有一个非负证整数的唯一进程ID。进程ID标识符总是唯一的。一般在linux创建一个进程是同fork()函数的。
函数fork()的原型
pid_t fork(void)
这个函数的主要主要特色是返回两次值,子进程返回0,父进程返回子进程ID。出错则返回-1。通过实例来了解一下这个函数。
#include#include #include #include int main(void) { pid_t pid; int globalx = 2; if ((pid = fork()) > 0){ int a = 1; printf("parent is %d ",a) } else if (pid == 0) { int a = 1; a++; printf("child is %d ",a); } else { printf("error"); } printf("all have: %d ",globalx); exit(0); }
运行的结果如下
由这个例子的看的出来,他们唯一的区别只是在pid>0下的代码和pid==0下的的代码。fork()之后父函数和子函数实现不同的代码段,而且相互之间并不影响。
我们在再看下一个例子。
#include#include #include #include int main(void) { pid_t pid; int globalx = 2; if ((pid = fork()) > 0){ int a = 1; for(int i=0;i<10;i++) printf("parent is %d ",a); } else if (pid == 0) { int a = 1; a++; for(int i=0;i<10;i++) printf("child is %d ",a); } else { printf("error"); } printf("all have: %d ",globalx); exit(0); }
运行的结果如下
当我们在那两个代码块加入循环时,就可以发现子进程和父进程,可以说时各自独立的,它们之间没有先后关系。如果子进场和父进程同时对一个文件进行操作,则需要考虑到这一点。
以上基本上是fork()函数两大特点。如果有错误和遗漏的地方,欢迎指出和补充。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/9973.html
摘要:下的函数孤儿进程孤儿进程是父进程结束,还存在子进程没有结束,那么这个子进程则成为孤儿进程,孤儿进程自动将进程作为自己的父进程。这种进程成为僵尸进程。下面的是结果从结果可以看出在子进程终止前,使其调用者阻塞。 linux下的wait()函数 孤儿进程孤儿进程是父进程结束,还存在子进程没有结束,那么这个子进程则成为孤儿进程,孤儿进程自动将init进程作为自己的父进程。 僵尸进程子进程终止时...
摘要:是由林纳斯托瓦兹起初开发的,由于源代码的开放性,现在已经衍生出了千上百种不同的系统。而一般情况下打包和压缩是一起进行的,打包并压缩后的文件的后缀名一般。 一、Linux的简介1.Linux的概述Linux是基于Unix的开源免费的操作系统,由于系统的稳定性和安全性几乎成为程序代码运行的最佳系统环境。Linux是由Linus Torvalds(林纳斯·托瓦兹)起初开发的,由于源代码的开放...
摘要:有个建议,一定要学一下,一定要学一下,一定要学一下,重要的事情说三遍。 首先,要学Linux编程,你得会用Linux,也就是得在命令行环境下生存下来。什么叫生存下来呢?就是我现在给你一台主机,键盘,显示器啥的,然后给你一个服务器版的Linux系统的光盘或者其他什么安装盘,你去把这台主机用起来。什么叫用起来呢?你平常用Windows电脑干啥,你现在还用这台电脑干啥。新建文件啊,查看文件,...
摘要:查看进程启动时间及运行多长时间。用字符显示树状结构,表达程序间的相互关系。列出程序时,包括已中断的子程序资料。显示该用户下的所有进程,且显示各个命令的详细路径。 linux查看进程启动时间及运行多长时间。 ps -eo lstart 启动时间 ps -eo etime 运行多长时间. ps -eo pid,lstart,etime | grep 5176 用linux ps查询进程...
摘要:用执行的任务适合于小时运行的机器,执行的任务会在设定好的时刻执行,当机器处于关机状态下并错过了任务执行的时间,任务就无法预期执行了。两个文件中每个用户名占一行,并且不允许出现空格。任务标识其目的是识别消息,日志文件和执行特殊操作。 人类把时间做了切割,想象一条笔直的线永远向前,本来这条直线上什么都没有,但是人类根据时间的长短(单位)在这条直线上做了密密麻麻的标记(世纪-年-月-日-时-...
阅读 6339·2021-11-16 11:39
阅读 1734·2021-09-29 09:35
阅读 2495·2021-09-22 15:25
阅读 1849·2021-08-23 09:43
阅读 1850·2019-08-30 15:54
阅读 3188·2019-08-30 15:53
阅读 2272·2019-08-30 13:50
阅读 2260·2019-08-30 11:24