我需要用C语言编写一个程序,它使用open、read、write、close、lseek等基本函数打印出文件的最后五行。我的代码:

int main(int argc, char *argv[]){
    int fd1=open(argv[1], O_RDONLY);
    char c;
    int currPos = lseek(fd1,-2,SEEK_END);
    while(currPos != -1){
        read(fd1,&c,sizeof(c));
        currPos--;
        currPos=lseek(fd1,currPos,SEEK_SET);
        if (c == '\n'){

        }
    }
    return 0;
}

有人能帮我吗?我想我需要将这些字符存储在数组中,然后反向打印,但我不知道如何打印。

最佳答案

为什么不在读回第五个换行符(称为n)时计算读取的字符数,然后读取n个字符?你不需要存储数据,它已经存储在文件中了。

07-28 01:07