switch -> Integer
[permalink][rdoc]switch {...} -> object
実効グループ ID を一時的に変更するために使います。
実効グループ ID を実グループ ID に変更します。実効グループ ID と実グループ ID が等しい場合には、実効グループ ID を保存グループ ID に変更します。変更前の実効グループ ID を返します。
ブロックが指定された場合、実効グループ ID を実グループ ID へ変更しブロックを実行します。ブロック終了時に実効グループ ID を元の値に戻します。ブロックの実行結果を返します。
なお、保存グループ ID を持たない環境でこのメソッドを実行すると実グループ ID が変化します。
include Process # (r, e, s) == (500, 505, 505) p [gid, egid] #=> [500, 505] Process::GID.switch do p [gid, egid] #=> [500, 500] end p [gid, egid] #=> [500, 505]