setsid()函式

2puT發表於2016-07-22


setsid是linux常用的命令之一。
外文名
setsid
類    型
專有名詞
性    質
程式語言
所    屬
linux常用的命令

setsid命令

編輯
linux常用的命令
setsid命令的一般格式:
setsid();

說明

編輯
當程式是會話的領頭程式時setsid()呼叫失敗並返回(-1)。setsid()呼叫成功後,返回新的會話的ID,呼叫setsid函式的程式成為新的會話的領頭程式,並與其父程式的會話組和程式組脫離。由於會話對控制終端的獨佔性,程式同時與控制終端脫離。
pid_t pid = fork(); //fork a process
if (pid < 0) exit(0); //fork error
if (pid > 0) exit(0); //father process exit
setsid();[1]  //creat a new session for a process
//之前parent和child執行在同一個session裡,parent是會話(session)的領頭程式,
//parent程式作為會話的領頭程式,如果exit結束執行的話,那麼子程式會成為孤兒程式,並被init收養。
//執行setsid()之後,child將重新獲得一個新的會話(session)id。
//這時parent退出之後,將不會影響到child了。

相關文章