如何解决Linux 环境中的 FILE* 流行为
我想知道一些问题,但我无法用谷歌搜索答案。当我在管道的文件描述符上使用 fdopen() 时,所有写入管道另一端的数据是否会自动放入 FILE* 流(由内核),C 代码可能如下所示:
...
char* buf = NULL;
FILE* stream = fdopen(dup(pipefd[0]),"r");
/*read 1 C-string from the pipe,another data will be buffered in the stream's buffer */
getline(&line,&len,stream);
...
...
/* It's from another process */
write(pipefd[1],somebuf,strlen(sumbuf));
...
...
/*Back to original process*/
getline(&line,stream);
这个 getline() 调用会自动获取 somebuf 内容还是我必须close() 和 open() em> 再次读取流还是使用 fread() 读取它以便使用新数据更新流的缓冲区?谢谢!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。