#include <stdio.h>
#include <unistd.h>
int main(void)
{
int flag = 0;
flag = execl("/home/hello",NULL);
printf("%d", flag);
exit(0);
}
请教在这段代码中,hello是一个打印helloworld的可执行文件,为什么execl不能正确执行呢,总是返回-1?
先谢谢了!
#include <stdio.h>
#include <unistd.h>
int main(void)
{
int flag = 0;
flag = execl("/home/hello",NULL);
printf("%d", flag);
exit(0);
}
请教在这段代码中,hello是一个打印helloworld的可执行文件,为什么execl不能正确执行呢,总是返回-1?
先谢谢了!
execl()的用法错了,查查文档看?
简单一点直接用system。
首先感谢两位的回复!
因为我想在一台机器上 运行一个程序main,它在运行过程中,需要启动另一台机器上的一个可执行程序submain做一个计算,submain计算结束后,把计算结果以异步通信的方式传回给main,如果想实现这么一个过程,请问使用execl或者system能实现吗?因为我发现这两个函数启动的程序实际上都是运行在本地机器上。
有没有更好的办法呢?
先谢谢了!
QNET.
至于计算结果回传给main,因为是父子进程,你可以选任何常用的手段。 pipe, msgq, QNX message passing都可以。
当然,比较偷懒的方法是使两机QNET互联后,直接system(“on -f othermachine submain arg1 arg2 …”); 但你要传给submain足够的命令行参数来保证它可以回传结果。
感激不尽!