进程 - exec函数族
进程调用exec函数族执行某个程序
进程当前内容被指定的程序替换
实现让父子进程执行不同的程序
父进程创建子进程
子程序调用exec函数族
父进程不受影响
进程 - execl/execlp
#include<unistd.h>
int execl(const char *path,const char *arg,...);
要执行程序的路径
int execlp(const char *file,const char *arg,...);
成功时执行指定的程序,失败时返回EOF
path 执行的程序名称,包含路径
arg...传递给执行的程序的参数列表
file 执行的程序的名称,在PATH中查找
进程创建 - execl(p) - 示例
执行ls命令,显示/etc目录下所有文件的详细信息
if(execl("/bin/ls","ls","-a","-l","/etc",NULL)<0){
perror("execl");
}
if(execlp("ls","ls","-a","-l","/etc",NULL)<0){
perror("execlp");
}
进程 - execv/execvp
#include<unistd.h>
int execv(const char *path,char *const argv[]);
int execvp(const char *file,char *const argv[]);
成功时执行肯定的程序,失败时返回EOF
arg...封装成指针数组的形式
进程创建 - execv(p) - 示例
执行ls命令,显示/etc目录下所有文件的详细信息
char *arg[]={"ls","-a","-l","/etc",NULL};
if(execv("/bin/ls",arg)<0){
perror("execv");
}
char *arg[]={"ls","-a","-l","/etc",NULL};
if(execvp("ls",arg)<0){
perror("execvp");
}
进程 - system
#include<stdlib.h>
int system(const char *command);
成功时返回命令command的返回值,失败时返回EOF
当前进程等待command执行结束后才继续执行
exec函数与system(linux进程与线程学习笔记)
最新推荐文章于 2023-02-13 20:58:50 发布