簡體   English   中英

sys / stat.h返回錯誤的大小

[英]sys/stat.h returning wrong size

我在用

  1. 不受限制的
  2. sys / stat.h

有趣的是st_size大於read()之后返回的值? st.st_size返回644 - read()返回606 ,有什么想法嗎?

內存以塊(st_blocks)的倍數分配。 您注意到的剩余字節歸因於塊對齊。

如果檢查st.st_blocks的值,您會發現它是644的良好除數,而不是606的除數。

因此,如果您想知道數據所占用的實際大小,請不要使用st_size

文件大小和流大小可能不匹配。 例如,當您以文本模式打開文件時,OS可以將多字節EOL序列轉換為單個字符。 這通常在Windows上可見,但是如果您在Linux上具有Windows文件,則效果可以相同。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM