ケーパビリティモードに入ったプロセスから子プロセスを生成した場合、その子プロセスもケーパビリティモードが引き継がれます。たとえば、これまで使ってきたソースコードを子プロセスを生成して、子プロセス側でファイルの読み込みを標準出力へ書きだすようにすると次のようになります。「read-cap-process.c」として用意しておきます。
ただ処理を子プロセスへ振っただけですので、このサンプルはそのまま動作します。
今度は子プロセス側で読み込みではなく、書き込みを実施するように処理を変更してみます。「read-cap-process2.c」として用意しました。
実行すると次のようにケーパビリティにおいてエラーが発生することが確認できます。
一度ケーパビリティモードに入ったプロセスはケーパビリティモードを抜け出すことはできません。ちなみに、プロセスの親子関係はps(1)コマンドに「-d」のオプションを指定すると視覚的に判断できるようになります。便利なので覚えておくといいでしょう。