【发布时间】:2017-02-28 09:49:13
【问题描述】:
我想从 C 应用程序调用可执行文件。这是我的代码:
execl("/home/ion/workspace/DNS/Debug","DNS","216.58.198.164","A",(char*)NULL);
其中 IP 和“A”应该是 argv[1] 和 argv[2]
这个名为 DNS 的应用程序应该在一个文件中写入一些东西,但是当我像这样用 execl 调用它时它就不起作用了。任何人都可以帮助我吗?
【问题讨论】:
-
如果您read the
execmanual page,您将看到参数列表必须以NULL指针终止。 -
@Someprogrammerdude 还是不行
-
那你能详细说明一下“不工作”的部分吗?
execl调用是否失败(即它返回-1)?如果是这样,errno的值是多少(使用例如perror打印出来)?如果可能,请尝试创建一个Minimal, Complete, and Verifiable Example 并展示给我们。 -
另外,请告诉我们
/home/ion/workspace/DNS/Debug是什么,是目录还是程序?参数"DNS"是程序的名称,还是应该是程序的第一个参数?您能告诉我们如何直接从 shell 运行命令吗? -
第一个参数必须包含程序的名称:
execl("/home/ion/workspace/DNS/Debug/DNS","DNS","216.58.198.164","A",(char*)NULL);