所以,我用过fork() 父进程打开文件并将其内容读入缓冲区并将缓冲区从写入端(fd [1])发送到读取端(fd [0])
子进程负责读取缓冲区。我想将fd [0]中的任何内容重定向到stdin,所以我可以在它上面使用Unix命令。举个例子:
// in child process
dup2(fd[0], 0); // 0 is STDIN
// Don't know what to do here
execl("/bin/grep/", "grep", "hello", NULL); // find the string 'hello' and operate on the content coming from stdin
任何帮助都将不胜感激。
答案 0 :(得分:0)
似乎很好。
也许你可以在dup2
之后关闭一些fds:
// in child process
dup2(fd[0], STDIN_FILENO);
close(fd[0]);
close(fd[1]);
编辑:
似乎有拼写错误:"/bin/grep/"
应该是:"/bin/grep"