假设我有:
#define CHUNK_SIZE 256
void copy(FILE *input, FILE *output) {
char buffer[CHUNK_SIZE];
while (fgets(buffer, CHUNK_SIZE, input) != NULL) {
fputs(buffer, output);
}
}
但是在 while 循环中,fgets
获取相同的参数 - 那么它如何知道在 while
的每次迭代中从文件中读取下一行?难道它不会因为总是读取同一行而陷入无限循环吗?
最佳答案
编辑:添加了额外的解释,因为 @KlasLindbäck 指出我的答案并不完全正确
File 是一个包含字段“fd”的结构,该字段是一个整数,标识该文件的操作系统文件描述符,该文件描述符可用于检索您正在读取的文件中的当前位置。如果您想了解有关 File 结构 here 的更多信息和文件描述符here
TL;DR:FILE 结构以某种方式存储它正在读取的位置。
关于c - fgets 如何从文件中逐行读取?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33413953/