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