argv = {'/usr/bin/grep', '/usr/bin/grep', '-ri', 'test', '.', 0}
pid_t pid = fork();
if (pid == 0) {
execv(argv[0], argv);
exit(0);
}
else {
wait(NULL);
}
这就是我的代码。我只是想尝试运行grep命令。我遇到的问题是它认为第二个/ usr / bin / grep是搜索模式。
我试图将argv数组更改为只包含一个/ usr / bin / grep,但是错误输出并且不运行grep。有什么帮助吗?
答案 0 :(得分:1)
execv
将该命令作为第一个参数,因此您希望"usr/bin/grep"
而不是argv[0]
这是您正在运行的程序。同时从argv
删除第一个参数。
我还会检查grep
/usr/bin
中/bin
是否经常{{1}}。