satan 通过 Google 阅读器发送给您的内容:
于 12-6-27 通过 averiany涂鸦馆 作者:averainy
原型:
#include <sys/types.h>
#include <unistd.h>
pid_t fork(void);
成功调用fork()会创建一个新的进程,返回值为0,失败返回-1,子进程的pid为0,子进程的ppid设置为父进程的pid.
fork()函数的实例
#include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <sys/types.h> int main(int argc, char * argv[]) { pid_t pid; pid=fork(); printf("pid=%d\n",pid); if(pid==-1) perror("fork"); if(pid==0){ printf("pid=%d\n",pid); int ret; ret=execlp("ls","ls",NULL); if(ret==-1){ perror("execv"); exit(EXIT_FAILURE); } printf("ret=%d\n",ret); exit(0); } if(waitpid(pid,NULL,0)<0) perror("waitpid"); if(pid>0) printf("pid=%d\n",pid); }
上面的例子是fork一个子进程,用exec函数调用系统命令ls,将当前目录的文件打印到屏幕, 调用waitpid等待子进程结束,打印父进程的pid.
如果不用waitpid的话,父进程的pid是打印不出来的.
本文作者:averainy | 本文地址: 固定链接 | 我的腾讯微博|我的google+
本站文章除特殊标明者外均为原创,版权所有,如需转载,请以超链接形式注明作者和原始出处及本声明
相关日志
- linux下查看系统运行时间和最近一次的开机启动时间 (0)
- linux系统编程:select()示例程序 (0)
- 我的linux分区方案 (5)
- Tango3 SDK Bring-up Tutorial (0)
- linux用shell获取本机的IP地址 (0)
- 纪念下,终于编译成功了第一个内核 (2)
- 编译cs_rootfs提示"genext2fs: couldn't allocate a block (no free space)"error的解决办法 (1)
- linux shell 获取计算机公网IP地址的几种写法 (1)
- linux定时备份,删除上月备份的数据库脚本 (0)
- linux删除指定目录没有后缀的文件 (0)
可从此处完成的操作:
- 使用 Google 阅读器订阅averiany涂鸦馆
- 开始使用 Google 阅读器,轻松地与您喜爱的所有网站保持同步更新
没有评论:
发表评论