读取带有文件描述符的文本文件到管道中



我在这里试图读取fileDesc的内容,这是一个文件描述符,指向一个文本文件到管道的一端*pipe_d[1]*一个字符的时间。这确实正确地从文件中打印字符,但我相信我的write()试图将字符的内存地址写入管道,而不是字符,如果我这样做的话。

char x;
FILE *file;
file = fdopen(fileDesc, "a+");
while((x = fgetc(file)) != EOF)
{
  printf("%c", x);
  write(pipe_d[1], &x, sizeof(x));
}

我希望将位于&x上的字符写入管道中。任何想法吗?

提前感谢!

  1. x有一个问题:它是一个字符,它不能包含值EOF,下面这行:

    while((x = fgetc(file)) != EOF)
    

    总是求值为true,使程序永远运行。将x声明为int将解决这个问题。

  2. 如果您希望在每个字符的基础上工作,您还应该使用fdopen(pipe_d[1], "w")fputc(fp, x)来编写管道

  3. 目前没有对pipe(pipe_d)的调用;你发了吗?

  4. 没有对fork()的调用,所以有管道的读取器吗?如果没有,程序将在管道填满后阻塞。

相关内容

  • 没有找到相关文章

最新更新