gpt4 book ai didi

c - 如何使用管道和 fork 系统调用将标准输入通过管道传输到文件

转载 作者:行者123 更新时间:2023-11-30 19:46:59 28 4
gpt4 key购买 nike

我正在尝试使用管道将标准输入传输到文件。
我的看法是,我需要使 stdin 成为管道的写入端。
对于代码,这是我到目前为止所拥有的:

int main(int argc, char** argv) {

int fd[2];
pipe(fd);
fd_set in;
FD_ZERO(&in);
FD_SET(fd[0], &in);
if(fork() == 0){
close(fd[0]);
dup2(fd[1], 0);
return 1;
}
else{
close(fd[1]);
select(fd[1] + 1, &in, NULL, NULL, NULL);
if(FD_ISSET(fd[0], &in)){
char buff[1024];
while(read(fd[0], &buff, sizeof(buff)) != 0){
write(1, buff, strlen(buff));
}
}

}
}

select 语句确实触发,但是当我从 fd[0] 读取时,那里什么也没有。
我有什么遗漏的吗?

最佳答案

只需在标准输入上使用 freopen() 即可。这应该可以解决问题。

关于c - 如何使用管道和 fork 系统调用将标准输入通过管道传输到文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22799193/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com