検索

ホームページ  >  に質問  >  本文

linux - fread 関数の実行中に問題が発生しました

fread 関数が正常に実行されると、戻り値は data_len と等しくなります。しかし、strlen を実行すると、文字列 buff の長さが間違っています。しかし、fwrite を使用して画像を別の .jpg に書き込んだところ、問題ありませんでした

リーリー

実行結果は以下の通りです

伊谢尔伦伊谢尔伦2762日前1276

全員に返信(2)返信します

  • 滿天的星座

    滿天的星座2017-06-07 09:26:30

    strlen的作用是遍历一个char*,如果找到0x00(所谓结束符'')就认为字符串结束,并返回遍历了多少个字符。你读取一个jpg文件,有很大概率在第5个字节上出现0x00,那么strlen当然只能读到4个字节。不信你可以用xxd out.jpgバイナリバイトを見てください。

    返事
    0
  • 伊谢尔伦

    伊谢尔伦2017-06-07 09:26:30

    C言語看作字符串的结尾。。。
    简单来说,strlenの実装はおそらく次のとおりです:

    リーリー

    そしてrb 读取出来的结果可以认为是uint8的数组,即0~255の配列。

    JPEGについては知っておくべきことAPP0的第一个字段是本字段长度0x00,0x10

    返事
    0
  • キャンセル返事