我试图用read()读取C程序中的二进制数据,但EOF测试不起作用.相反,它永远运行,永远读取文件的最后一位.
#include <stdio.h> #include <fcntl.h> int main() { // writing binary numbers to a file int fd = open("afile",O_WRONLY | O_CREAT,0644); int i; for (i = 0; i < 10; i++) { write(fd,&i,sizeof(int)); } close(fd); //trying to read them until EOF fd = open("afile",O_RDONLY,0); while (read(fd,sizeof(int)) != EOF) { printf("%d",i); } close(fd); }
解决方法
读取返回读取的字符数.当它到达文件的末尾时,它将无法再读取(完全),它将返回0,而不是EOF.
原文地址:https://www.jb51.cc/c/114174.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。