9 process relationships
1.每個程序屬於乙個
process group
,這個process group
從同樣的
terminal
獲得signal
2.getpgrp
可以獲得
process group id
,也用pid_t
結構表示:
#include
pid_tgetpgrp(void);
返**用程序所屬於的
process group id
3.getpgid
可以獲得某個程序的
process group id
#include
pid_tgetpgid(pid_t pid);
返回pid制定的程序所屬於的
process group id
如果引數
pid = 0
,則返**用程序所屬的
processgroup的id
4.每個
group
都有乙個
leader
,這個leader
的processid = process group id
5.乙個程序呼叫
setpgid
來參加或者建立乙個
process group
: #include
intsetpgid(pid_t pid, pid_t pgid);
成功返回
0,錯誤返回
-1
注意如果
pid=pgid
,則指定程序成為
process group leader
如果pid=0
,則指定程序為呼叫程序
1.session
是乙個或者多個
process group
2.呼叫
setsid
函式來建立乙個新的
session
#include
intsetsid(void);
成功返回
0,錯誤返回
-1 3.
呼叫setsid
函式,如果該程序不是
process group leader
,則函式會建立乙個新的
session
a.程序成為
session
的session leader
b.成為新的
process group
的leader
c.程序沒有
controlling terminal
4.single unix specification
沒有session id
,不過我們可以認為乙個
session
的session leader
的process id = session id
5.getsid
可以獲得
session id
: #include
pid_tgetsid(pid_t pid);
成功返回
session leader
的process id
,錯誤返回
-1
同樣的,
pid = 0
標明是呼叫程序
session
和process group
有下面特性:
1.session
只能有乙個
controlling terminal
2.session leader
和controlling terminal
建立聯絡,稱之為
controlling process
3.session
中的process group
可以被分為乙個
foreground process group
和多個background process group
4.按下
interrupt key (delete or ctrl+c)
或者quit key (ctrl+/)
,signal
會傳送給
foreground process group
中的所有
process
5.如果
network/modem disconnect
被檢測到,則
controlling process
會收到乙個
hang-up signal
6.大部分時候
controlling terminal
就是我們
login
時候的terminal
1.下面這些函式可以被用來
告訴kernel
那些process group
是foreground
,那些是
background
: #include
pid_ttcgetpgrp(int filedes);
成功返回
foreground process group的id
,錯誤返回
-1
inttcsetpgrp(int filedes, pid_t pgrpid);
成功返回
0,錯誤返回
-1 2.
tcgetpgrp
返回filedes
對應的terminal
的foreground process group id
,而tcsetpgrp
可以設定
foreground process group id
3.tcgetsid
函式可以獲得
filedes
所對應的
session id
,也就是
session leader
的process group id
#include
pid_ttcgetsid(int filedes);
成功返回
session id
,錯誤返回
-1
程序程式設計
1 – unix
高階環境程式設計
7章讀書筆記
程序程式設計2 – unix環境高階程式設計8章讀書筆記
程序程式設計3 - unix高階環境程式設計第9章讀書筆記
unix訊號(signal)程式設計 - unix高階環境程式設計第10章讀書筆記
使用pthread
庫進行多執行緒程式設計
1 - unix
環境高階程式設計第
11章讀書筆記
使用pthread
庫進行多執行緒程式設計
2 - unix
高階環境程式設計第
12章讀書筆記
作者: atfield
程序程式設計3 UNIX高階環境程式設計第9章讀書筆記
2007年03月25日 22 03 00 9 process relationships 1.每個程序屬於乙個 process group 這個process group 從同樣的 terminal 獲得signal 2.getpgrp 可以獲得 process group id 也用pid t 結...
程序程式設計3 UNIX高階環境程式設計第9章讀書筆記
9 process relationships 1.每個程序屬於乙個 process group 這個process group 從同樣的 terminal 獲得signal 2.getpgrp 可以獲得 process group id 也用pid t 結構表示 include pid tgetp...
程序程式設計3 UNIX高階環境程式設計第9章讀書筆記
9 process relationships 1.每個程序屬於乙個 process group 這個process group 從同樣的 terminal 獲得signal 2.getpgrp 可以獲得 process group id 也用pid t 結構表示 include pid tgetp...