如果我使用read()
函数来逐个读取字符,如何避免读取文件的最后一个字符?在此示例中,我尝试使用EOF
和'\ 0',但这对我没有帮助。每次我有6个字符,但它读取7个字符,最后一个为空。
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
int main() {
int fd = open("foooooo", O_RDONLY | O_CREAT , 0666);
char c;
while(1) {
int readd = read(fd, &c, 1);
if (c == EOF || c == '\0') break; //I have a problem with this line
if (readd == 0) break;
printf("%d\n", readd);
printf("%c\n", c);
}
}