基本的にUNIXに、read()
とwrite()
機能は、非バッファI/O、バッファリングされていないread()/ write()操作でバッファキャッシュが使用されるのはなぜですか?
であり、I/Oバッファリングされている標準I/Oがあります。
しかし、read()
とwrite()
機能は、実際のI/O(実デバイスへのI/O)を行う前に、カーネル内にあり、実際のI/Oがバッファキャッシュを使用して起こるバッファキャッシュを使用しています。それはバッファを使用しています。
I/Oがバッファされていないと聞きましたが、char-by-charで実際のデバイスにI/Oが発生したことを意味します。
はその後、なぜread()
とwrite()
機能は、それがバッファキャッシュを使用しているにもかかわらず、非バッファI/Oがありますか?
SUSv4では、 'read'と' write'がバッファリングされていなければならないと指定していません。[read](http://pubs.opengroup.org/onlinepubs/9699919799/functions/read.html)、[write] //pubs.opengroup.org/onlinepubs/9699919799/functions/write.html) –
'read()'と 'write()'はバッファリングされていないという考えをどこから得ましたか? –
さらに、 'sync'呼び出し([sync](http://pubs.opengroup.org/onlinepubs/9699919799/functions/sync.html))が存在します。 –