当前位置: 技术问答>linux和unix
如何清空pipe中的数据
来源: 互联网 发布时间:2016-07-20
本文导语: Linux环境 用write往pipe的fd[1]端写入数据后,但是这数据又不想要了,能有什么办法直接抛弃掉,而不是用read出来吗? | int temp; dup2(fd[0],temp) dup2(stderr,fd[0]); fsync(fd[0]); dup2(temp,fd[0]) | 那...
Linux环境
用write往pipe的fd[1]端写入数据后,但是这数据又不想要了,能有什么办法直接抛弃掉,而不是用read出来吗?
用write往pipe的fd[1]端写入数据后,但是这数据又不想要了,能有什么办法直接抛弃掉,而不是用read出来吗?
|
int temp;
dup2(fd[0],temp)
dup2(stderr,fd[0]);
fsync(fd[0]);
dup2(temp,fd[0])
dup2(fd[0],temp)
dup2(stderr,fd[0]);
fsync(fd[0]);
dup2(temp,fd[0])
|
那就是重新从pipefs 那里去一个临时索引节点 再在从内核分配一个临时页框,创建2个文件对象 返回给用户2个文件描述符
恩 就是这样
|
me too
直接 把 fd 关闭。