Как можно избежать чтения последнего символа файла, если я использую функцию 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);
}
}