为什么在创建管道时使用int [2]数组?

uma*_*uma 2 c linux

int channel[2];
pipe(channel);
Run Code Online (Sandbox Code Playgroud)

我是c编程的初学者,我看到这个代码用于在两个不同的进程之间进行通信.为什么将int [2]数组作为参数传递给我们在管道中使用它?

我们可以将任何大小的数组传递给管道吗?(例如.int channel [5])

Cha*_*ffy 6

两个FD对应于管道的两侧.就其本质而言,管道具有输入端和输出端 - 超过这个没有意义.

如果传入大于a的任何内容int[2],则其他插槽将不被使用.

  • 传递小于2`int`-s的东西是[未定义的行为](http://en.wikipedia.org/wiki/Undefined_behavior) (2认同)