1 fread这个函数是阻塞的吗?
2 当我读取某一个文件是否需要等到fread返回才能继续下面的操作?
3 还有,如果我读取的文件内部有错误(例如,那一块磁盘有问题,或是其他的一些问题),此时fread还能继续正常读取吗?如果读不到,fread是否会阻塞住,还是能马上返回异常?
1.fread不是阻塞函数,要不就是读到了,要不就是读不到或者异常返回。
2.fread函数打开文件后如果是读写方式,则该该文件直到操作完成后,其他进程才能对其操作。
3.fread有异常直接会返回错误。不会阻塞等待。
你可以设置fd的属性为阻塞或非阻塞
应该阻塞;
从文件读一定大小的数据,没内容可读则返回已读数据大小;
返回0通常是读到了文件尾。如果你确认没有到
文件尾,可以用ferror检查错误。
if ( ferror ( fp ) )
{
printf("File read error.");
}
版权声明:本文为oNelson123原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。