setid

脫離控制終端,登入會話和進程組。調用setid(),進程將成為會話組長。

setid()函式的原型:
#include <sys/types.h>
#include <unistd.h>
pid_t setid( void );
調用setid()將創建一個會話期和新的進程組,調用進程為該會話期和進程組組長,並且該進程沒有控制終端。
setid()調用將返回新創建的進程組ID,並且該進程組ID等同於調用進程的進程ID。失敗則返回-1,並設定errno的值指出錯誤原因。
如果進程已經是會話組長時,setid()調用將失敗,但我們已經保證進程不是會話組長(第一次fork())。setid()調用成功後,進程稱為新的會話期組長,並與原來的登入會話和進程組脫離。由於會話進程對控制端具有獨占性,進程將同時與控制終端脫離。

相關詞條

熱門詞條

聯絡我們