繁体   English   中英

使用execl重定向ls

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM