展开全部
fread是读的二进制数据,包括0的;strlen是判断的以0结束的字符串长度,遇到0就打住了。
所以,操作二进制数据的时候,不能用strlen
所以,操作二进制数据的时候,不能用strlen
追问
也就是说,fread里的buf存储的是读到文件的二进制版本,fread返回值就是读取字符数(但不是二进制的个数),strlen测到的是buf里0之前的个数。对不?
追答
fread返回的是读到的字符个数(包括0),fread结束标志是传入的buf填满或者文件结束。
strlen统计的是非0字符的个数,以0作为结束标志。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询