我需要用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
个字符?你不需要存储数据,它已经存储在文件中了。