尝试使用execvp从程序运行中获取返回值,始终为0

时间:2014-10-15 11:02:24

标签: return-value wait pid execvp

我正在尝试学习如何正确使用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 }

0 个答案:

没有答案