【问题标题】:Why is the compiler rejecting my execv function call? [duplicate]为什么编译器拒绝我的 execv 函数调用? [复制]
【发布时间】:2016-02-17 03:12:07
【问题描述】:

我正在尝试使用 --preserve--interactive 两个选项来执行 cp 命令

在我的代码中我有:

char const *copy[] = {"/bin/cp","cp","-p","-i",0};

execv(copy[0],copy);

但它给了我这个错误

error: invalid conversion from 'const char**' to 'char* const*'   
error: initializing argument 2 of 'int execv(const char*, char* const*)'

我应该改变什么才能让它工作?

【问题讨论】:

  • 只需从第一行删除const
  • @zgyarmati:在您提议的副本的标题中存在 C++,这使得它有点不适合标记为 C 的问题。

标签: c compiler-errors execv


【解决方案1】:

我认为您应该将副本声明为:

char *const copy[] = {"/bin/cp", "cp", "-p", "-i", 0};

见:http://pubs.opengroup.org/onlinepubs/009695399/functions/exec.html

【讨论】:

    猜你喜欢
    • 2021-08-06
    • 1970-01-01
    • 1970-01-01
    • 2022-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-24
    • 1970-01-01
    相关资源
    最近更新 更多