如果我使用read()函数一个接一个地读取字符,如何避免读取文件的最后一个字符

时间:2018-12-19 19:43:08

标签: c linux

如果我使用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);
   }
}

0 个答案:

没有答案