Return value 正在尝试使用execvp从程序运行中获取返回值,始终为0
我正在尝试学习如何正确地将execvp用于我正在进行的项目,在该项目中,我希望获得我运行的另一个程序的返回值。我做了一个简短的程序,试图学习如何获取返回值,但我没有运气 该程序执行我编写的另一个短程序,并获取返回值。它似乎总是0,但是无论它实际返回什么,这都是由参数决定的Return value 正在尝试使用execvp从程序运行中获取返回值,始终为0,return-value,wait,pid,execvp,Return Value,Wait,Pid,Execvp,我正在尝试学习如何正确地将execvp用于我正在进行的项目,在该项目中,我希望获得我运行的另一个程序的返回值。我做了一个简短的程序,试图学习如何获取返回值,但我没有运气 该程序执行我编写的另一个短程序,并获取返回值。它似乎总是0,但是无论它实际返回什么,这都是由参数决定的 1 #include <unistd.h> 2 #include <stdlib.h> 3 #include <stdio.h> 4 #include <string.
1 #include <unistd.h>
2 #include <stdlib.h>
3 #include <stdio.h>
4 #include <string.h>
5
6 int main(void)
7 {
8 int ret;
9 pid_t pid;
10 char *array[2];
11 char a[255] = "./program";
12 char b[255] = "1";
13
14
15 array[0] = a;
16 array[1] = b;
17
18
19 pid = fork();
20
21 if(pid == 0)
22 {
23 execvp("~/mydirr", array);
24 }
25
26 else
27 {
28 wait(pid, &ret, 0);
29 printf("%d\n", ret);
30 }
31 return EXIT_SUCCESS;
32 }
您应该检查execvp是否返回-1。谢谢!是的,它正在返回-1。最可能的原因是什么?在这种情况下,您应该检查errno以了解调用失败的原因-请参阅: