execlp函数实现 ls -l -a 功能
时间: 2023-12-21 17:53:00 浏览: 30
可以使用 `execlp` 函数通过系统调用来执行 `ls -l -a` 命令,具体实现如下:
```c
#include <unistd.h>
int main()
{
execlp("ls", "ls", "-l", "-a", NULL);
return 0;
}
```
`execlp` 函数的第一个参数是要执行的程序名,第二个参数是程序名,第三个参数开始是程序的参数列表,参数列表必须以 NULL 结尾。在上面的例子中,我们传递了 `ls`、`-l` 和 `-a` 三个参数给 `ls` 命令,因此程序会执行 `ls -l -a` 命令。
需要注意的是,`execlp` 函数会取代当前进程,因此在执行完 `execlp` 后的代码不会被执行。如果 `execlp` 返回值为负数,则说明执行出错了。
相关问题
在C语言程序中执行shell命令ls -l,下列选项正确的是 0 system(ls -l); system("ls -l"): execlp("ls -l") execlp(ls -l);
正确选项是 `system("ls -l")`。 `system()` 函数可以用来执行 shell 命令,它的原型为 `int system(const char *command)`,参数 `command` 为要执行的命令字符串。因此,`system("ls -l")` 可以执行 shell 命令 `ls -l`。其他选项都是错误的。
- `system(ls -l)` 语法错误,ls -l 应该放在字符串中。
- `execlp("ls -l")` 语法错误,`execlp()` 函数的第一个参数是要执行的程序名,第二个参数是要传递给程序的参数,因此应该写成 `execlp("ls", "-l", NULL)`。
- `execlp(ls -l)` 语法错误,ls -l 应该放在字符串中。
execlp("/bin/ls","ls","-a","-l",NULL); 这个函数中的参数-a和-l是什么意思
在函数execlp("/bin/ls","ls","-a","-l",NULL)中,"-a"和"-l"是ls命令的选项参数。其中,"-a"表示显示所有文件和目录,包括隐藏文件和目录,"-l"表示以长格式显示文件和目录的详细信息,包括文件类型、权限、所有者、大小、创建时间等等。
另外,函数execlp("/bin/ls","ls","-a","-l",NULL)的作用是在/bin目录下执行ls命令,并将"-a"和"-l"作为选项参数传递给ls命令。需要注意的是,函数execlp()的第一个参数是要执行的程序的路径,第二个参数是要执行的程序的名称,后面的参数是要传递给程序的命令行参数,以NULL结尾。