как можно избежать чтения последнего символа файла, если я использую функцию read () для чтения символа один за другим - PullRequest
0 голосов
/ 19 декабря 2018

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