一个创建子进程的简单示例代码
2014-01-16 00:56
483 查看
参考APUE中第1章1.6小节
主要涉及到2个函数: fork、exec
运行结果:
主要涉及到2个函数: fork、exec
// filename : process_ctrl.c // child process -- fork, exec, waitpid #include <stdio.h> #include <sys/wait.h> #define MAXLINE 32 int main(int argc, char *argv[]) { char buf[MAXLINE]; pid_t pid; int status; printf("parent: pid=%d\n", getpid()); printf("%% "); while (fgets(buf, MAXLINE, stdin) != NULL) { if (buf[strlen(buf) - 1] == '\n') buf[strlen(buf)-1] = 0; pid = fork(); if (pid < 0) { printf("parent: fork() error!\n"); } else if (pid == 0) { printf("child: new process start!\n"); printf("child: new process pid=%d\n", getpid()); execlp(buf, buf, (char *)0); printf("child: couldn't execure: %s\n", buf); exit(1); } else { printf("parent: child process pid=%d\n", pid); } if ((pid = waitpid(pid, &status, 0)) < 0) printf("waitpid error\n"); printf("%%"); } }
运行结果:
%[mht@localhost p1_5]$ ./process_ctrl parent: pid=6922 % ls child: new process start! child: new process pid=6927 process_ctrl process_ctrl.c parent: child process pid=6927 %
相关文章推荐
- 一个创建子进程的简单示例代码
- 一个简单的ALSA示例代码
- 深入浅出学习Struts1框架(一):一个简单mvc模式代码示例开始
- 用opengl编写一个简单的画图软件示例代码
- 代码函数从零开始学习OpenCL开发(二)一个最简单的示例与简单性能分析
- 一个简单的ALSA示例代码
- java 添加一个线程、创建响应的用户界面 。 演示示例代码
- php中DOMDocument简单用法示例代码(XML创建、添加、删除、修改)
- 【iOS开展-50】使用它来创建一个新的类的实现代码包,因此,不自觉地练习简单MVC实验,附带动画
- 用vue的双向绑定简单实现一个todo-list的示例代码
- Asp.net 2.0 一个简单的联动DropDownList示例(示例代码下载)
- [导入]Asp.net 2.0 一个简单的联动DropDownList示例(示例代码下载)
- Asp.net 2.0 一个简单的联动DropDownList示例(示例代码下载)
- 深入浅出学习Struts框架(一):一个简单mvc模式代码示例开始
- OC中用字典创建一个具有省市区的应用(简单的字典运用代码)
- 深入浅出学习Struts1框架:一个简单mvc模式代码示例开始
- Asp.net 2.0 一个简单的联动DropDownList示例(示例代码下载) [zhuan :D]
- 创建一个简单的Ajax组建(Component)的代码的理解
- 一个最简单的IIS日志导入示例(含代码)
- java实现一个简单的网络爬虫代码示例