unix/Linux编程:如何在程序1中调用程序2,实现重定向?
2个回答
展开全部
用 dup 类系统调用即可,很简单,参考下面重定向 ls 输出到 test.log 的例子,你可以在这个基础上做其他程序的重定向:
#include <stdio.h>
#include <unistd.h>
#include <sys/stat.h>
#include <fcntl.h>
int main()
{
int fd;
int pid;
fd = open("test.log", O_WRONLY|O_CREAT, S_IWUSR|S_IRUSR);
pid = fork();
if (pid == 0)
{
/* child, redirect stdout to file */
dup2(fd, STDOUT_FILENO);
close(fd);
execlp("/bin/ls", "/bin/ls", "-l", ".", NULL);
}
else
{
wait(NULL);
close(fd);
}
return 0;
}
#include <stdio.h>
#include <unistd.h>
#include <sys/stat.h>
#include <fcntl.h>
int main()
{
int fd;
int pid;
fd = open("test.log", O_WRONLY|O_CREAT, S_IWUSR|S_IRUSR);
pid = fork();
if (pid == 0)
{
/* child, redirect stdout to file */
dup2(fd, STDOUT_FILENO);
close(fd);
execlp("/bin/ls", "/bin/ls", "-l", ".", NULL);
}
else
{
wait(NULL);
close(fd);
}
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询