Linux應用程式設計基礎 (5)多程序程式設計基礎2

2021-08-09 08:27:48 字數 1378 閱讀 5583

一、程序組

乙個或多個程序的集合

程序組id: 正整數

兩個函式getpgid(0) getpgrp()

函式原型為:

#include

pid_t getpgrp(void);

#include

pid_t getpgid(pid_t pid);

返回值,若成功則返回程序組id,出錯返回-1

程序組id = 父程序id,即父程序為組長程序

組長程序

組長程序標識: 其程序組id==其程序id

組長程序可以建立乙個程序組,建立該程序組中的程序,然後終止

只要程序組中有乙個程序存在,程序組就存在,與組長程序是否終止無關

程序組生存期: 程序組建立到最後乙個程序離開(終止或轉移到另乙個程序組)

乙個程序可以為

自己或子程序

設定程序組id

setpgid()加入乙個現有的程序組或建立乙個新程序組

#inlcude

int setpgid(pid_t pid, pid_t pgid)

二、會話:

乙個或多個程序組的集合

開始於使用者登入

終止與使用者退出

此期間所有程序都屬於這個會話期

建立新會話:setsid()函式

該呼叫程序是組長程序,則出錯返回

先呼叫fork, 父程序終止,子程序呼叫

該呼叫程序不是組長程序,則建立乙個新會話

•該程序變成新會話首程序(session header)

•該程序成為乙個新程序組的組長程序。

•該程序沒有控制終端,如果之前有,則會被中斷

組長程序不能成為新會話首程序,新會話首程序必定會成為組長程序...

會話id:會話首程序的程序組id

獲取會話id: getsid()函式

在子程序中呼叫setsid()後,子程序成為新會話首程序,且成為乙個組長程序,其程序組id等於會話id

Linux串列埠應用程式設計

常見的資料通訊的基本方式可分為並行通訊與序列通訊兩種。1.並行通訊是指利用多條資料傳輸線將乙個字資料的各位元位同時傳送。它的特點是傳輸速度快,適用於傳輸距離短且傳輸速度較高的通訊。2.序列通訊是指利用一條傳輸線將資料以位元位為單位順序傳送。特點是通訊 線路簡單,利用簡單的線纜就可實現通訊,降低成本,...

Linux應用程式設計 mmap

二話不說,上來就問下那個man name mmap,munmap map or unmap files or devices into memory synopsis include void mmap void addr,size t length,int prot,int flags,int f...

linux應用程式設計筆記(5)linux中獲取隨機數

隨機數 隨機數是隨機出現,沒有任何規律的一組數列。偽隨機數 真正的完全隨機的數列是不存在的,只是一種理想情況。我們平時要用到隨機數時一般只能通過一些演算法得到乙個偽隨機數序列。我們平時說到隨機數,基本都指的是偽隨機數。連續多次呼叫rand函式可以返回乙個偽隨機數序列 srand函式用來設定rand獲...