我正在尝试向后读取文件(例如文件末尾的 10 行)。newline_counter
每次读取'\n'时,我都会增加我的新行计数器( )。一旦newline_counter
到达user_num
(参数),比如 10 行,lseek()
就会停在当前位置(current_pos
)。我正在返回这个位置,以便我可以在另一个函数中使用这个位置,该函数使用lseek()
这个位置并开始从这个位置读取并写入到文件末尾。我已经成功编译了程序,但是一旦我开始运行它,程序就一直在运行并且没有输出。
int func_line_mode(int infile, int user_num) {
char c;
int newline_counter = 0;
int current_pos = 0;
int end = lseek(infile, 0, SEEK_END);
int counter = 0;
while (counter < end || newline_counter <= user_num) {
lseek(infile, current_pos, SEEK_END);
read(infile, &c, sizeof(char));
if (strcmp(&c,"\n") == 0) {
newline_counter++;
}
current_pos--;
counter++;
}
return current_pos;
}