もう 1 つの可能性は、setrlimit(2) syscall とRLIMIT_FSIZE
ulimitbash
組み込み(を使用-f
) を使用して、適切な制限を減らすことです。その後、write(2)は失敗しますEFBIG
また、適切なファイル システムにクォータを設定することもできるため、 でwrite(2)
失敗しEDQOT
ます。
実際のENOSPC
エラーが必要な場合は、おそらくqdiiwrite(2)
が回答したループバック ファイル システムが必要です。
EIO
ところで、エラーを「エミュレート」する方法がよくわかりません(おそらくFUSEファイルシステムで?)。
多くのプログラムがwrite(2)
エラーを処理します (そして、ほとんどすべてのプログラムがエラーを処理する必要があります)。しかし、 で発生する可能性のあるさまざまなエラーを非常に異なる方法で処理する多くのプログラムを知りませんwrite(2)
。ほとんどのプログラムは、すべてのwrite(2)
エラーを同じ方法で処理します。
EINTR
ただし、エラーを別の方法で処理する必要がある場合があります。これらは回復可能なエラーであり、通常は後でEWOULDBLOCK
やり直します。write(2)