Unixプロセスがfork()したとき親から子へ継承される属性まとめ


詳解UNIXプログラミング第2版 8章プロセス制御 より

親から子へ継承される属性

  • オープンされているファイル
  • 実ユーザID、実グループID、実効ユーザID、実効グループID
  • 補足グループID
  • プロセスグループID
  • セッションID
  • 制御端末
  • セットユーザIDフラグとセットグループIDフラグ
  • カレント作業ディレクトリ
  • ルートディレクトリ
  • ファイルモード作成マスク
  • シグナルマスクとシグナル処理
  • オープンされたファイル記述子のクローズオンイグゼックフラグ(オープン済みファイルのファイル記述子群は close-on-exec が指定されたとき exec()時に自動的にクローズされる)
  • 環境変数
  • 共有メモリセグメント
  • リソースリミット(ulimit)

本には書かれていなかったが

  • nice値

親と子の違い

  • forkからの戻り値
  • プロセスID
  • 親プロセスID
  • 子側のtms_utime, tms_stime, tms_cutime, tms_ustimeの値は0になる
  • 親が設定したファイルロックは子には継承されない
  • 子に対する保留アラームはクリアされる
  • 子に対する保留シグナルの集合は空になる