如何使用exec()系列实现shell命令cp和rm?

时间:2013-07-25 18:57:32

标签: linux exec

如何使用exec()系列调用实现cp和rm shell命令?我搜索了很多,但没有找到任何有用的网站/链接,有人可以帮助吗???

1 个答案:

答案 0 :(得分:3)

以下是示例。

名称中带有exec的{​​{1}}函数将参数列表作为自己的参数。 l后缀表示应使用p找到该命令,因此您只需提供命令名称。

$PATH

execlp("cp", "cp", "sourcefile", "destfile", (char *)0); 的变体将参数置于单个数组参数中(“v”代表v)。在这种情况下,我没有使用vector后缀,所以我给出了该程序的完整路径。

e

在这两种情况下,第一个参数也是程序的名称,因为在新进程中它将变为char *args[] = {"rm", "file1", "file2", 0); execv("/bin/rm", args); 。参数的结尾用空指针表示。您应该在使用argv[0]变体时明确提供类型转换,因为varargs函数不会自动将类型转换为指针。