linux fork()笔记
来源:互联网 发布:java 密码加密解密 编辑:程序博客网 时间:2024/06/04 19:31
源代码,通过输出测试fork()如何创建一个新的进程;
int main(int argc, char const *argv[]){ pid_t pid =1; static int a=1; pid = fork(); std::cout<<"a:"<<a<<"pid:"<<pid<<std::endl; a++; pid = fork(); std::cout<<"a:"<<a<<"pid:"<<pid<<std::endl; a++; pid = fork(); std::cout<<"a:"<<a<<"pid:"<<pid<<std::endl; std::cout<<"getpid"<<getpid()<<std::endl; std::cout<<std::endl; return 0;}
输出结果如下:
a:1pid:22210a:2pid:22211a:3pid:22212getpid22209a:3pid:0getpid22212a:2pid:0a:3pid:22213getpid22211a:1pid:0a:2pid:22214a:3pid:22215getpid22210a:3pid:0getpid22213a:3pid:0getpid22215a:2pid:0a:3pid:22216getpid22214a:3pid:0getpid22216
通过输出我们可以得出以下结论:
1、运行到fork()时候系统并不会中断当前进程去创建新的进程,而是将fork()缓存起来等当前进程执行完毕后,按照先进后出的原则创建新的进程(类似于栈)。
2、fork()函数创建的进程并不是从头开始执行,而是从接着fork()函数后继续执行,也就是从fork()之后的下一条语句继续执行。
因此在写很多fork()循环调用时候需要注意考虑fork()的嵌套关系。
0 0
- linux fork 笔记
- linux fork()笔记
- Linux学习笔记--fork
- 【linux】fork() && fork() || fork()
- Linux学习日记--fork()函数笔记
- Linux笔记记录1 fork()
- linux fork()
- Linux - fork
- linux fork
- linux fork
- Linux fork()
- Linux-fork()
- Linux-fork()
- linux fork()
- 【Linux】fork()
- linux fork()
- linux fork
- 《linux 内核完全剖析》 fork.c 代码分析笔记
- make版本替换
- 使用MyBatis操作数据库连接
- 冒泡排序示例
- Error:Execution failed for task ':app:mergeDebugResources
- Service
- linux fork()笔记
- 自己解决基于MQTT的android推送
- LeetCode 94 Binary Tree Inorder Traversal (中序遍历二叉树)
- AngularJS ui-router (嵌套路由)
- 装配Bean:XML与JavaConfig混合装配
- DBN学习资料
- Netmask (子网掩码 )的用途与子网络的切分
- Androidstudio工具下的JNI开发环境搭建
- 连接redis的方法