出于某种原因,当我尝试使用 fputc 通过管道写入时,我的程序不起作用;但是,当我使用 write 系统调用时,它工作正常。这是我使用 fputc 的代码的一部分:
FILE *input = fopen(argv[1], "rb");
FILE *toSort = fdopen(ps_fd[1], "wb");
/* close the side of pipe I am not going to use */
close (ps_fd[0]);
char temp;
char buf[1];
while ((temp=fgetc(input)) != EOF)
{
buf[0] = (char)temp;
fputs(buf, toSort);
buf[0] = '\0';
}
fputs(buf, toSort);
close(ps_fd[1]);