![](/img/trans.png)
[英]How can I get the return value of /bin/ls -R if I run it using execl()?
[英]Redirect ls using execl
我想使用execl中的ls并将输出重定向到存在的文件中。 我尝试了这个:
int value = execl("/bin/ls","ls","-l",">/home/sbam/myfile",NULL);
但这不起作用...我该怎么办?
谢谢。
重定向是外壳程序的一部分,而不是命令处理的内容。 要么调用一个shell并通过该shell执行命令,要么可以使用open
打开文件并使用dup2
使该文件成为过程标准输出。
就像是
int fd = open("/home/sbam/myfile", O_CREAT | O_WRONLY, 0644);
if (fd != -1)
{
if (dup2(fd, STDOUT_FILENO) != -1)
{
if (execl("/bin/ls", "ls", "-l", NULL) == -1)
perror("execl");
}
else
perror("dup2");
}
else
perror("open");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.