首页 > 解决方案 > 为什么 pipe() 采用数组而不是指向两个整数的指针?

问题描述

pipe() 函数的签名为int pipe(int fildes[2]). 使用该filedes参数,因此函数可以返回两个整数(其中filedes[0]设置为管道读取端的文件描述符,以及filedes[1]管道的写入端)。

我试图弄清楚为什么这个 API 被设计成一个指向数组的指针,而不是像这样的两个指针:int pipe(int *read, int *write). 似乎使用指向数组的指针比使用两个不同的指针更容易出错,而且如果两个给定的整数在内存中不相邻,它也无法使用。

pipe()API 的设计方式是否有特定原因?

标签: clinuxunix

解决方案


推荐阅读