关闭文件描述符的多个id通道fd [i] [2]

时间:2014-03-15 07:59:18

标签: c

void helper(int *fd, int *total) {
  int i;
  for (i=0; i < (*total); i++) {
    close(fd[i][0]);
      }
}

下面是我的伪代码看起来像是什么,它会分叉多个子节点和管道,在所有子进程完成读取之后,它们调用辅助函数来关闭通道的读取结束。

int main() {
    .
    int fd[4][2]
   .
   .
   .
   if (fork()==0) {
      helper(&(fd[4][2]), &i)

我收到一条错误消息:

error: subscript value is neither an array nor pointer nor vector

编辑:拼写错误&#34; for()&#34; to&#34; fork()&#34;

1 个答案:

答案 0 :(得分:1)

int *fd是维度数组的指针,因此您无法将其项目作为拖曳维度数组引用,如下所示:fd[i][0]

由于fd[4][2]超出范围,因此数组访问再次[4][2]错误。