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

Jos*_*ahn 1 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");
    }
Run Code Online (Sandbox Code Playgroud)

我不应该使用任何stdio的东西.

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

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

dus*_*uff 5

您已指定O_TRUNC | O_CREAT打开标志,但未指定O_RDWRO_WRONLY.

您也可能想要写入n字节,而不是sizeof(buf),因为剩余的sizeof(buf) - n字节是未初始化的.