0

我正在尝试模拟 unix 中的重定向和管道(<、>、>>、|)。除了附加(>>)之外,我已经设法对所有这些进行了编程。这是我检查>>是否在cmd字符串中的代码和平。

   if(!strcmp(cmd[i], ">>")){
        aux[i] = NULL;
        fdW = open(cmd[i+1], O_APPEND);
        dup2(fdW, STDOUT_FILENO);
        close(fdW);
    }

但是,当我调用 dup2() 将 STDOUT 重定向到打开的文件时,会返回此错误:

  cat: write error: Bad file descriptor

有谁知道为什么这发生在 O_APPEND 而不是 O_WRONLY。

4

1 回答 1

0

问题是我不知道O_WRONLY即使我使用的是O_APPEND.

于 2013-11-10T00:30:13.130 回答