【Linux系统学习】进程与线程
2018-09-11 15:52
183 查看
进程运行新程序
fork()/exec()组合是典型的Linux新进程产生模式,通常先用`fork()`创建新进程,然后新进程通过调用`exec()类`执行自己的任务。 exec(),将一个可执行程序文件读入,代替原先的程序执行。此时,系统吧代码段替换成新程序的代码,废弃原有的数据段和堆栈段,并为新程序分配新的数据段与堆栈段,位移留下的就是进程号。 函数原型
#include<unistd.h> int execl(const char *path, const char *arg, ...); int execlp(const char *file, const char *arg, ...); int execle(const char *path, const char *arg, ..., char* const envp[]); int execv(const char* path, char *const argv[]); int execve(const char *filename, char *const argv[], char *const envp[]); int execvp(const char *file, char *const argv[]);
execlptest.c
#include<errno.h> #include<string.h> #include<stdio.h> #include<error.h> #include<stdlib.h> #include<unistd.h> #include<sys/types.h> char command[256]; int main(int argc, char **argv[]) { int rtn; while(1) { printf(">"); fgets(command, 256, stdin); command[strlen(command)-1]=0; if(fork()==0){ execlp(command, command); perror(command); exit(-1); }else{ wait(&rtn); printf("child process return %d\n", rtn); } } return 0; }
进程等待
wait()函数
阅读更多相关文章推荐
- Linux进程线程学习笔记 系列转
- Linux进程线程学习笔记:进程控制
- Linux下的C编程实战(开发平台搭建,文件系统编程,进程控制与进程通信编程,“线程”控制与“线程”通信编程,驱动程序设计,专家问答)
- Linux系统学习笔记:进程
- Linux进程与线程学习随笔
- linux学习总结进程与线程
- Linux进程线程学习笔记:进程创建
- Linux系统中 任务、进程和线程总结
- Linux 线程与进程的学习
- 【Linux学习笔记二十二】init进程与系统运行级别
- 计算Linux系统和进程和线程的CPU及内存使用率(c++源码)
- Linux进程线程学习笔记:进程创建
- linux 系统编程-学习笔记7-进程/fork/vfork/exec函数族
- Linux系统学习(进程)——1.进程的创建
- 从零开始--系统深入学习android(实践-让我们开始写代码-Android框架学习-5.Android中的进程与线程)
- linux 系统编程-学习笔记8--信号/线程
- Unix/linux进程及线程间同步技术总结【学习总结,请勿吐槽。。。】
- Linux学习记录--进程控制相关系统调用
- linux下多线程学习4_打印线程id和进程id
- Linux进程线程学习笔记:运行新程序