我正在尝试学习如何正确使用execvp进行项目我正在努力获取我想要获得的另一个程序的返回值。我做了一个简短的程序试图学习如何获得回报值,但我没有运气。
程序执行另一个我做的短程序,并获得返回值。它似乎总是0,但无论它应该返回什么(这由参数决定)。
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 }