shell使用execvp实现,arg[1] :ls arg[2]: -l arg[3] \n
时间: 2023-09-20 22:08:12 浏览: 67
shell简单实现
好的,您可以使用以下代码来实现:
```c
#include <stdio.h>
#include <unistd.h>
int main() {
char *args[] = {"ls", "-l", "\n", NULL};
execvp(args[0], args);
return 0;
}
```
这里我们定义了一个字符指针数组 `args`,存储了要执行的命令及其参数。然后使用 `execvp` 函数来执行这个命令,其中第一个参数是要执行的命令名,第二个参数是参数列表,必须以 NULL 结尾。在这个例子中,`ls` 命令的参数是 `-l` 和 `\n`,表示要列出文件的详细信息并输出一个换行符。
注意,当调用 `execvp` 函数时,当前进程会被替换成新的进程,因此在执行 `execvp` 函数后的代码将不会得到执行。如果 `execvp` 函数返回了,说明执行失败了,可以根据 `errno` 来查看错误原因。
阅读全文