我是新来的C,想得到一些帮助,我有一个问题。我读和写管道如下:

f = fdopen(fdH2P[WRITE], "w"); // writing to pipe, returns a file pointer


r = fdopen(fdP2H[READ], "r"); // reading from pipe

我想从函数返回这两个文件指针。最好的办法是什么?

最佳答案

您可以将两个文件指针放入一个结构中并返回该结构,也可以将指针传递给函数,如下所示

void GetPipes( FILE **wptr, FILE **rptr )
{
   *wptr = fdopen(fdH2P[WRITE], "w");
   *rptr = fdopen(fdP2H[READ], "r");
}

void SomeOtherFunction( void )
{
   FILE *wptr, *rptr;
   GetPipes( &wptr, &rptr );
   ...
}

10-07 19:08