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

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

execvp(arguments[0], arguments);

其中arguments[]是一个stings数组。 在大多数情况下,我的实现工作正常 – 例如,如果arguments{"touch", "somefile.txt"}预期调用touch命令。

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

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

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

execvp的手册页说:

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