0

私は使っている

  1. unistd.h
  2. sys/stat.h

興味深いのは、st_size後に返される値よりも大きいことread()です。 st.st_size返品644-read()返品606, 何か考えはありますか?

4

2 に答える 2

0

ファイルのサイズとストリームのサイズが一致しない場合があります。たとえば、ファイルをテキスト モードで開くと、OS はマルチバイトの EOL シーケンスを単一の文字に変換できます。これは通常、Windows で表示されますが、Linux に Windows ファイルがある場合、結果は同じになる可能性があります。

于 2013-03-18T20:57:58.333 に答える
0

メモリはブロック (st_blocks) の倍数で割り当てられます。お気づきの残りのバイトは、ブロックの配置によるものです。

の値を確認すると、606 ではなく、st.st_blocksの適切な除数であることがわかります。644

したがって、データが占める実際のサイズを知りたい場合は、 を使用しないでくださいst_size

于 2013-03-18T20:57:16.353 に答える