[basic linux基础]-进程
2016-03-24 13:02
225 查看
#include <sys/ytpes.h> #include <unistd.h> pid_t fork(void);
在父进程中fork调用,返回的是子进程的pid(就是当前调用fork的进程id);
子进程的fork调用,返回的是0;(就是说fork(void)语句,父子两个进程都有返回值)
这时候新老两个进程同时接着执行,各自都有自己的pid。因为fork系统调用复制了当前进程,在进程表中创建一个新的表项,新表相的许多属性与当前进程是相同的,新进程几乎与原进程一模一样,执行的代码也完全相同,但是新进程有自己的数据空间、环境和文件描述符,fork与exec函数结合在使用就是创建新进程所需要的一切了;
/************************************************************************* > File Name: fork1.c > Author: > Mail: > Created Time: 2016年03月21日 星期一 10时19分20秒 ************************************************************************/ #include<stdio.h> #include<sys/types.h> #include<unistd.h> #include<stdlib.h> int main(){ pid_t pid; char *message; int n; printf("fork program starting\n"); pid = fork(); printf("pid = %d\n",pid); switch(pid){ case -1: perror("fork failed"); exit(1); case 0: message = "this is the child"; n = 5; break; default: message = "this is the program"; n = 3; break; } for(;n>0;n--){ puts(message); sleep(1); } exit(0); }等待一个进程:fork启动了一个子进程,子进程有了自己的生命周期并将运行。那么我们怎么控制父子两个进程的运行顺序呢?
使用wait()函数,在父进程中调用wait,让父进程等待子进程的结束。
#include <sys/types.h> #incldue <sys/wait.h> pit_d wait(int *stat_loc>
相关文章推荐
- Linux内存管理Linux Memory Management Notes
- linux安装cnn库
- Linux命令-进程后台执行:nohup(就是不挂起的意思)
- Linux编程---线程
- linux中安装jdk+jmeter-
- linux中安装jdk+jmeter-
- linux安装boost库
- 关于Makefile的正确使用
- linux 读取input输入设备demo
- linux下的VI命令大全
- parted命令对齐分区,获得最佳性能
- linux下vi命令大全
- Linux下查看文件内容的命令
- Linux系统中nmap网络扫描工具的命令用法详解
- Linux系统中sort排序命令的使用教程
- linux运维实战练习-2016年3月4日-3月19日课程作业
- 3.23linux内核编译学习
- CentOS parted分割大于2TB硬盘的performance问题处理
- 关于在CentOS中使用gdb出现debuginfos调试信息
- IPTABLES 规则(Rules)