[我正在尝试编写处理标准输入和输出并将其重定向到文件的代码,然后使用execvp(也尝试了其他exec来运行仅使用printf和scanf的程序,但是execvp失败。 >
相关代码:
int pid2 = fork(); if (pid2 == 0) { int fdInput = open("myinputfile", O_RDONLY); close(0); dup(fdInput); int fdOutput = open("results.txt", O_WRONLY | O_CREAT | O_TRUNC); close(1); dup(fdOutput); char* tmp[]={"...somepath/prog"}; execvp("...somepath/prog", tmp); }
我的编:
int main(){ int x; scanf("%d",&x); printf("Hello World! %d",x); return 0; }
myinputfile仅包含-> 4
我尝试了两件事:
我不明白为什么它不起作用,我尽了我所能想到的一切。
我正在尝试编写处理标准输入和输出并将它们重定向到文件的代码,然后使用execvp(也尝试了其他exec来运行仅使用printf和scanf的程序,...
您传递给execvp()
的参数数组不是NULL
终止的。