我想在c程序中使用execlp来运行另一个c程序。 exec函数调用程序,但它不能正确传递整数参数。我exec调用是:如何使用execlp将命令行参数传递给C程序
int exec_arg_1, exec_arg_2;
if(pid == 0){
printf("Repeat Number: %d, Process Number: %d\n", exec_arg_1, exec_arg_2);
execlp("/home/drlight/Desktop/asp/Assignment_3/philosopher.o",
"philosopher.o", &exec_arg_1, &exec_arg_2, NULL);
printf("Exec didn't work...\n");
}
我赋值给exec_arg整数,并打印他们的权利之前,为了确保他们是正确的,但philosopher.o函数只是读取0的距离的位置。如果我从命令行运行philosopher.o,它通常会读取参数。
为什么不看看'execlp'的手册页来查看它需要的参数类型?你调用未定义的行为。 – Olaf
明白Unix/Linux开发者只能处理文本。给定一个整数的二进制表示,他们的大脑会爆炸。 –
我试着传递字符数组,但同样的问题发生。另外,我认为整数和字符在C中的大多数情况下是可以互换的。我没有收到任何编译器警告。 – Spence123