一般に、read(2)システムコールは、読み取られるように要求されたバイトよりも少ないバイトを返すことができることは明らかです。ただし、かなりの数のプログラムは、ローカルファイルを操作するときに、read(2)が要求されたものよりも少なくなることはないと想定しています(もちろん、ファイルが短い場合を除きます)。
だから、私の質問は:Linuxでは、開いているファイルからの読み取りが行われず、読み取られる量が最大で数キロバイトである場合、read(2)は要求されたものよりも少ない値を返すことができますか?
いくつかの推測:
- 受信した信号はそのような読み取りを中断できますが、失敗させることはできませんか?
- さまざまなファイルシステムがこの動作に影響を与える可能性がありますか?jffs2について何か特別なことはありますか?