【问题标题】:execl command in c under Linux ubuntuLinux ubuntu下c中的execl命令
【发布时间】: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 exec manual 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‌​);

标签: c linux ubuntu dns execl


【解决方案1】:

您的应用程序名称 (DNS) 应在第一个参数(路径)中指定

execl("/home/ion/workspace/DNS/Debug/DNS","DNS","216.58.198.164","A",(char*)NULL);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-20
    • 1970-01-01
    • 2013-04-07
    • 1970-01-01
    • 2023-03-08
    • 2013-04-06
    相关资源
    最近更新 更多