在子进程中执行文件
Execv with files in a child process
我在同一个目录 main 和 example 中有两个程序,如果我执行 ./example file.txt
它会使用该文件管理简单的任务。那么我的主程序是
#include<stdio.h>
#include<stdlib.h>
#include <sys/types.h>
#include <sys/wait.h>
int main (int argc, char* argv[]){
pid_t const pid1 = fork();
if(pid1==0){
execv();
}
else{
wait(NULL);
}
}
所以我想执行 ./main file.txt
并且子进程应该使用 main 在 argv[1] 中收到的相同文件执行 ./example file.txt
。
我的问题是如何使用 execv 参数来完成此操作。
对不起,如果我没有简单地解释自己。
谢谢
最简单的方法是:
execl("./example", "example", argv[1], (char *)NULL);
或者,
char *args[] = {
"example",
argv[1],
NULL
};
execv("./example", args);
我在同一个目录 main 和 example 中有两个程序,如果我执行 ./example file.txt
它会使用该文件管理简单的任务。那么我的主程序是
#include<stdio.h>
#include<stdlib.h>
#include <sys/types.h>
#include <sys/wait.h>
int main (int argc, char* argv[]){
pid_t const pid1 = fork();
if(pid1==0){
execv();
}
else{
wait(NULL);
}
}
所以我想执行 ./main file.txt
并且子进程应该使用 main 在 argv[1] 中收到的相同文件执行 ./example file.txt
。
我的问题是如何使用 execv 参数来完成此操作。
对不起,如果我没有简单地解释自己。
谢谢
最简单的方法是:
execl("./example", "example", argv[1], (char *)NULL);
或者,
char *args[] = {
"example",
argv[1],
NULL
};
execv("./example", args);