semget建立檔案 山大作業系統實驗4

2021-10-16 14:29:16 字數 786 閱讀 3176

int sem_p(int semid, int index) ;

buf.sem_num = index;

if(semop(semid, &buf, 1) == -1) ;

buf.sem_num = index;

if(semop(semid, &buf, 1) == -1) {

perror("a wrong operation to semaphore occured!");

return -1;

return 0;

int main(){

int i;

int semid, shmid; //訊號集

key_t keyid;

//建立訊號燈陣列,8個訊號燈

//3 給吸菸者: 0:tobacco&*****,1:*****&glue,2:glue&tobacco //2 給兩個**者: 3,4

//3 for provoder: 5:tobacco&*****,6:*****&glue,7:glue&tobacco //若成功返回semid=訊號燈陣列識別符號,若不成功<0出錯

if((semid = semget(ipc_priv ate, 8, flags)) < 0) {

perror("semget error!");

exit(exit_failure);

//設定陣列中(給生產者的)3~7訊號燈的狀態為1

for(i = 3; i <= 7; i++) {

if((semctl(semid, i, setv al, 1)) < 0) {

semget建立檔案 linux訊號燈操作

訊號量 乙個整數 大於或等於0時代表可供併發程序使用的資源實體數 小於0時代表正在等待使用臨界區的程序數 用於互斥的訊號量初始值應大於0 只能通過p v原語操作而改變 訊號量元素組成 1 表示訊號量元素的值 2 最後操作訊號量元素的程序id 3 等待訊號量元素值 1的程序數 4 等待訊號量元素值為0...

IO 建立檔案

public class demo03 catch exception e public static void test3 throws ioexception,interruptedexception 刪除檔案 boolean flag src.delete system.out.println...

建立檔案鏈結

硬連線 硬連線指通過索引節點來進行連線。在linux的檔案系統中,儲存在磁碟分割槽中的檔案不管是什麼型別都給它分配乙個編號,稱為索引節點號 inode index 在linux中,多個檔名指向同一索引節點是存在的。一般這種連線就是硬連線。硬連線的作用是允許乙個檔案擁有多個有效路徑名,這樣使用者就可以...