FILE * file = fopen( “in.txt”, “r” );
char line[80];
if( NULL != file ) {
fgets( line, 40, file );
fclose( file );
}
上面的代码中是否有任何危险,我在这里看到的是缓冲行最大长度为40个字符串然后关闭文件。
答案 0 :(得分:1)
您可能会混淆fgets()
和gets()
。见Why is the gets function so dangerous that it should not be used?
只要大小参数与缓冲区大小匹配,fgets
就是安全的。在你的情况下,做fgets( line, sizeof(line), file );
是正常的
注意:fgets()
读取最多比“大小”少1并且始终为0终止。