- unistd.h中
- SYS/stat.h
,什麼是有趣的是,st_size
比返回的值越大read()
後? st.st_size
返回644
- read()
返回606
, 有什麼想法?
,什麼是有趣的是,st_size
比返回的值越大read()
後? st.st_size
返回644
- read()
返回606
, 有什麼想法?
流的文件大小和大小可能不匹配。例如,當您以文本模式打開文件時,OS可以將多字節EOL序列轉換爲單個字符。這通常在Windows上可見,但如果您在Linux上有Windows文件,則效果可能相同。
內存分配在多個塊(st_blocks)中。您注意到的剩餘字節是由於塊對齊。
如果檢查st.st_blocks
的價值,你會看到這是一個644
好除數,而不是606
所以,如果你想知道的數據所佔用的實際大小,不使用st_size
。
顯示一些代碼。 – piokuc 2013-03-18 20:44:25
是否將文件描述符設置爲非阻塞?該文件是一個普通的磁盤文件,還是有什麼特別的。也顯示一些代碼。 – selbie 2013-03-18 20:45:53
'read()'被允許讀取並返回比請求更少的字節... – twalberg 2013-03-18 20:48:35