首页 / LINUX / linux管道的容量和内部组织方式
linux管道的容量和内部组织方式
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了linux管道的容量和内部组织方式,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含849字,纯文字阅读大概需要2分钟。
内容图文
![linux管道的容量和内部组织方式](/upload/InfoBanner/zyjiaocheng/1263/ef076b8122c64a9bbca75c690712f806.jpg)
1.管道容量 count=65536,即64KB
#include<stdio.h> #include<sys/types.h> #include<unistd.h> #include<fcntl.h> #include<errno.h> #include<stdlib.h> #include<string.h> int main() { int _pipe[2]; if(pipe(_pipe)==-1) { printf("pipe error\n"); return 1; } int ret; int count=0; int flag=fcntl(_pipe[1],F_GETFL); fcntl(_pipe[1],F_SETFL,flag|O_NONBLOCK); while(1) { ret=write(_pipe[1],"A",1); if(ret==-1) { printf("error %s\n",strerror(errno)); break; } count++; } printf("count=%d\n",count); return 0; }
2.管道的内部组织方式
在 Linux 中,管道的实现并没有使用专门的数据结构,而是借助了文件系统的file结构和VFS的索引节点inode。通过将两个 file 结构指向同一个临时的 VFS 索引节点,而这个 VFS 索引节点又指向一个物理页面而实现的。
有两个 file 数据结构,但它们定义文件操作例程地址是不同的,其中一个是向管道中写入数据的例程地址,而另一个是从管道中读出数据的例程地址。这样,用户程序的系统调用仍然是通常的文件操作,而内核却利用这种抽象机制实现了管道这一特殊操作。
原文:http://www.cnblogs.com/guochuanrui/p/5677535.html
内容总结
以上是互联网集市为您收集整理的linux管道的容量和内部组织方式全部内容,希望文章能够帮你解决linux管道的容量和内部组织方式所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。