对于家庭作业,我必须从标准输入中读取,将其保存到文件中,然后在另一个过程中读取文件.但是,我很困惑为什么这段代码不起作用:
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个字节但缓冲区本身有正确的信息....有人可以帮助我们看看我哪里出错了?
我可以在文件名上使用进程并正确读取它们.
您已指定O_TRUNC | O_CREAT打开标志,但未指定O_RDWR或O_WRONLY.
您也可能想要写入n字节,而不是sizeof(buf),因为剩余的sizeof(buf) - n字节是未初始化的.
| 归档时间: |
|
| 查看次数: |
995 次 |
| 最近记录: |