Cプログラムopen(), close(), read(), write()
テクニックを使用してRAWディスクに大きなファイルをコピーしています。ディスクサイズは20 GBで、ファイルサイズは17 GBですが、書き込む度に毎回945 MB write()
がスローされますNo space left on device
エラーです。C:特定のサイズ制限に達した後にRAWディスクに書き込み中にwrite()が失敗する
fdisk -l /dev/sdb
を実行し、20.5ギガバイトを返してきた
とdu /dev/sdb
は
945126569
は、その後、私はそれがあまりにも同じNo space left on device
エラーをスローし、私はそれが正常に完了しcat /dev/sdb > /tmp/sdb.img
を行い、cat mylargefile > /dev/sdb
を試してみましたと言います。そして、私はそれが945126569
を応答ls -ld /tmp/sdb.img
私はext4
ファイルシステムを作成するために、同じディスクを使用し、何の問題もなく、それをフォーマットするため、ディスクエラーが起こりそうであることができます。 (私が推測する...)
私のプログラムをビルドするために、最新のGCCでUbuntu 16.04 LTS amd64 OSを使用しています。
誰かが私が間違っているか、これを避けるために何が必要なのかを誰にでも示唆できますか?
'du/dev/sdb'は** 0 **と言うべきです。 –
ディスクサイズは通常1000の倍数で、ファイルサイズは1024の倍数であることを忘れないでください。その矛盾をチェックしましたか? –
@Someprogrammerdude pebkacエラー。 –