C - 尝试将/ bin / ls传递给execvp时出错

时间:2013-10-12 07:35:30

标签: c ls execvp

我正在开发一个需要能够使用execvp执行某些命令的C程序,我已经实现了这个:

execvp(arguments[0], arguments);

其中arguments[]是一串蜇伤。在大多数情况下,我的实现工作正常 - 例如如果arguments{"touch", "somefile.txt"},则touch命令将按预期调用。

但是,当我尝试将ls传递给execvp且参数类似于{"/bin/ls", "-a", "."}时,ls函数会按预期打印目录列表,但也会输出错误

ls: cannot access GLIBC_2.0: No such file or directory

我不知道如何解决此警告,谷歌搜索没有任何结果。有什么想法是错的吗?

1 个答案:

答案 0 :(得分:3)

execvp的手册页说:

  

execv()execvp()函数提供了一系列指针   以null结尾的字符串,表示可用的参数列表   新计划。按惯例,第一个论点应指向   与正在执行的文件关联的文件名。 数组   指针必须由NULL指针终止。