我正在开发一个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/