APUE學習小問題記錄

2021-08-13 10:30:23 字數 1184 閱讀 7167

#include int mkdir(const char *pathname, mode_t mode);

所指定的檔案訪問許可權mode有程序的檔案模式闖將遮蔽字修改。即umask();

mode_t 用數字指定時應用八進位制,前導0;

umask(0);

mkdir("creatdir", 0775);

「條件變數本身室友互斥量保護的。執行緒在改變條件狀態之前必須先鎖住互斥量。因為互斥量必須在鎖定以後才能計算條件。」

「傳遞給_wait的互斥量對條件進行保護。呼叫者把鎖住的互斥量傳給函式。」-> _wait 和 _lock配合使用。

「函式然後自動吧呼叫執行緒放到等待條件的執行緒列表上,對互斥量解鎖。」-> _wait 計算條件時,互斥量是unlock狀態。若條件不滿足,則執行緒掛起,不佔任何cpu週期。

「_wait 返回時,互斥量再次被鎖住。」

pthread_cond_timedwait();
pthread_cond_wait(); 還包括_signal(),_broadcast(),在這些函式操作之前,都要_lock互斥量。

_signal()至少喚醒乙個執行緒,_broadcast()喚醒全部執行緒

pthread_cond_wait()

必須與pthread_mutex 配套使用。

pthread_cond_wait()

函式一進入wait狀態就會自動release mutex。當其他執行緒通過

pthread_cond_signal()

或pthread_cond_broadcast

,把該執行緒喚醒,使

pthread_cond_wait()通過(返回)時,該執行緒又自動獲得該

mutex

。深入理解pthread_cond_wait、pthread_cond_signal

pthread_mutex_destroy()用於登出乙個互斥鎖,api定義如下: int pthread_mutex_destroy(pthread_mutex_t *mutex) 銷毀乙個互斥鎖即意味著釋放它所占用的資源,且要求鎖當前處於開放狀態。由於在linux中,互斥鎖並不占用任何資源,因此linuxthreads中的pthread_mutex_destroy()除了檢查鎖狀態以外(鎖定狀態則返回ebusy)沒有其他動作。

APUE的小問題

檢視下面的幾個小例子,分析linux中怎麼區分引數的個數的 程式中設定了引數為2否則出錯 administrator gzhang gzhang day09 a.exe 1 argv 1 1 read and write administrator gzhang gzhang day09 a.exe...

C語言 精華小問題記錄

在知乎中看到乙個回答,說到了1987年國際c語言混亂 大賽獲獎的一行 只有一行,卻窮盡了c中的精華。main 看了一下,記錄一下,防止以後忘記了,以下是根據原文章的描述加上自己的理解,以自己容易懂的方式重寫了一下。此處為斜槓 轉義字元的用處參考鏈結。define unix 1 intmain 對了,...

遇到的幾個小問題,記錄下

1 往資料庫裡插入新的資料,判斷是否存在,呼叫的儲存過程 create proc dbo n inserttemplate temenaglishname nvarchar 50 tempurl varchar 50 staticpageurl varchar 200 asdeclare rows ...