int
execl(const char *path, const char *arg0, ... /*, (char *)0 */);
int
execle(const char *path, const char *arg0, ...
/*, (char *)0, char *const envp[] */);
int
execlp(const char *file, const char *arg0, ... /*, (char *)0 */);
int
execv(const char *path, char *const argv[]);
int
execvp(const char *file, char *const argv[]);
int
execvP(const char *file, const char *search_path, char *const argv[]);
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <pthread.h>
int main(int agrc, char *argv[])
{
pid_t pid = fork();
if (pid==-1){
perror("fork error");
exit(1);
}else if(pid==0){ // 子进程
// 找到NULL之后就结束
// execlp("ls", "-l", "-d", "-h", NULL); // 错误的写法
execlp("ls", "ls", "-l", "-d", "-h", NULL);
// 下面的代码只有在出错的时候才会执行
perror("exec error");
exit(1);
}else if (pid>0){ // 父进程
printf("I'm parent: %d\n");
}
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <pthread.h>
int main(int agrc, char *argv[])
{
pid_t pid = fork();
if (pid==-1){
perror("fork error");
exit(1);
}else if(pid==0){ // 子进程
// 找到NULL之后就结束
// execlp("ls", "-l", "-d", "-h", NULL); // 错误的写法
//execlp("ls", "ls", "-l", "-d", "-h", NULL);
execl("./a.out", "a.out", "-l", "-d", "-h", NULL);
// 下面的代码只有在出错的时候才会执行
perror("exec error");
exit(1);
}else if (pid>0){ // 父进程
printf("I'm parent: %d\n");
}
return 0;
}
原文:https://www.cnblogs.com/fandx/p/12518339.html