我正在开发一个C程序,它需要能够使用execvp执行某些命令,我已经用以下方法实现了这一点:
execvp(arguments[0], arguments);
其中arguments[]是一组刺。在大多数情况下,我的实现工作得很好——例如,如果arguments{"touch", "somefile.txt"},则按预期调用touch命令。
但是,当我试图将参数类似于ls{"/bin/ls", "-a", "."}传递给execvp时,ls函数会按预期打印目录列表,但也会打印错误
ls: cannot access GLIBC_2.0: No such file or directory
我不知道该如何解决这个警告,谷歌搜索也没有发现任何结果。有什么问题吗?

最佳答案

execvp的手册页上写着:
execv()execvp()函数为
以空结尾的字符串,表示可用于
新计划。按照惯例,第一个论点应该指向
与正在执行的文件关联的文件名。一系列
指针必须以空指针结尾。

关于c - C-尝试将/bin/ls传递给execvp时出错,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19331733/

10-12 02:11