使用write()在C中创建临时文件

时间:2012-11-11 01:07:28

标签: c

对于作业,我必须从标准输入中读取,将其保存到文件中,然后在另一个过程中读取文件。但是,我很困惑为什么这段代码不起作用:

    while((n = read(0,buf,sizeof(buf))) > 0) {
        int tempfile = open("testfile", O_TRUNC | O_CREAT, 0666);
        write ( tempfile , buf , sizeof(buf) );
        close(tempfile);
        process("testfile");
    }

我不应该使用任何stdio东西。

当我查看我创建的文件时,它有0个字节但缓冲区本身有正确的信息....有人可以帮我们看看我哪里出错了吗?

我可以在文件名上使用进程并正确读取它们。

1 个答案:

答案 0 :(得分:5)

您已为开放标记指定了O_TRUNC | O_CREAT,但未指定O_RDWRO_WRONLY

您可能还想写n个字节,而不是sizeof(buf),因为剩余的sizeof(buf) - n字节未初始化。