当前位置:  技术问答>linux和unix

pipe(a)了一次,又PIPE(a)了一次,是建立了两个管道,还是同一个?

    来源: 互联网  发布时间:2016-03-24

    本文导语:  pipe(a)了一次,又PIPE(a)了一次,是建立了两个管道,还是同一个? | $ cat pipe.c  #include  #include  int main() { int fd[2]; pipe(fd); printf("%d, %dn", fd[0], fd[1]); pipe(fd); printf("%d, %dn", fd[0], fd[1]); ...

pipe(a)了一次,又PIPE(a)了一次,是建立了两个管道,还是同一个?

|
$ cat pipe.c 
#include 
#include 

int main()
{
int fd[2];
pipe(fd);
printf("%d, %dn", fd[0], fd[1]);

pipe(fd);
printf("%d, %dn", fd[0], fd[1]);
pause();
}

$ ./a.out &
3, 4
5, 6
[1] 10235
thomas@apollo:~/code/tmp$ ls -l /proc/10235/fd
总用量 0
lrwx------ 1  0 -> /dev/pts/7
lrwx------ 1  1 -> /dev/pts/7
lrwx------ 1  2 -> /dev/pts/7
lr-x------ 1  3 -> pipe:[73302]
l-wx------ 1  4 -> pipe:[73302]
lr-x------ 1  5 -> pipe:[73303]
l-wx------ 1  6 -> pipe:[73303]

我还是认为创建了两个pipe

|
管道在linux下也是按文件对待的,都是以文件名(包括全路径名的文件名)来在系统内标识唯一的。
和你创建普通文件一样。
在一个系统内不可能存在两个文件名相同的文件的。

|
我实验了一下:
$ cat pipe.c 
#include 
#include 

int main()
{
int fd[2];
pipe(fd);
printf("%d, %dn", fd[0], fd[1]);

pipe(fd);
printf("%d, %dn", fd[0], fd[1]);
}
$ gcc pipe.c 
$ ./a.out 
3, 4
5, 6
我认为是新建了一对pipe

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间java.nio.channels类pipe的类成员方法: pipe定义及介绍
  • 请问,pipe 源码中,为何没有 pipe(...) 这个函数?
  • java命名空间java.nio.channels类pipe.sourcechannel的类成员方法: pipe.sourcechannel定义及介绍
  • 一个c程序运行的时候提示Broken pipe,这个Broken pipe是什么意思?
  • java命名空间java.nio.channels类pipe.sinkchannel的类成员方法: pipe.sinkchannel定义及介绍
  • 请问,FIFO的读写是否有字节数限制,PIPE_BUF如何使用?
  • java命名空间java.io类pipedinputstream的类成员方法: pipe_size定义及介绍
  • Pipes
  • java命名空间java.nio.channels类pipe的类成员方法: sink定义及介绍
  • pipe是否需要锁定的问题
  • java命名空间java.nio.channels类pipe的类成员方法: open定义及介绍
  • 编程技术其它 iis7站长之家
  • pipe的性能如何?主要指的是延时...
  • 如何设定pipe使用的buffer大小
  • Pipe Viewer
  • 请问关于pipe通信的问题
  • socket编程中的Broken pipe的问题
  • 关于pipe
  • linux 下pipe break 错误的修复
  • pipe不成功的原因有哪些啊?
  • pipe


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3