0

我正在开发一个需要能够使用 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

我不知道如何解决这个警告,谷歌搜索也没有任何结果。有什么想法有什么问题吗?

4

1 回答 1

3

的手册页execvp说:

execv()and函数提供了一个指向以空字符结尾的字符串的指针数组,这些execvp()字符串表示新程序可用的参数列表。按照惯例,第一个参数应该指向与正在执行的文件关联的文件名。 指针数组必须以 NULL 指针终止。

于 2013-10-12T08:01:42.300 回答