Linuxの下でC言語のプログラミング——信号の処理


1.信号生成LinuxにおけるC言語プログラミング——メッセージ管理1.POSIX無名信号量(Linuxは無名信号量のみ実現)
#include<semaphore.h>

int sem_init(sem_t *sem,int pshared,unsigned int value);//       ,       value。pshared                ,    Linux             ,        0
int sem_destroy(sem_t *sem);//       
int sem_wait(sem_t *sem);//       ,      >0,                   。
int sem_trywait(sem_t *sem);// sem_wait  ,    ,       0     EAGAIN,      
int sem_post(sem_t *sem);// sem_wait  ,      +1             .
int sem_getvalue(sem_t *sem);//       

2.System V信号量
#include<sys/types.h>
#include<sys/ipc.h>
#include<sys/wem.h>
struct sembuf
{
	short sem_num;//       
	short sem_op;//      
	short sem_flg;//     
}
key_t ftok(char *pathname,char proj);//  pathname proj        
int semget(key_t key,int nsems,int semflg);//       ,      ID,key      ,,    ftok       IPC_PRIVATE            ,nsems            .semflg        ,              。

int semctl(int semid,int semnum,int cmd,union semun arg);//           ,semid         ,semnum      ,cmd      ,         SETVAL(       ) IPC_RMID(     ),arg    cmd   。
int semop(int semid,struct sembuf *spos,int nspos);//          ,spos                ,nspos       ,  sem_op>0,     sem_op                    ,  sem_op=0,       0   ,    ,            0,    0,               ,     0         0   ,    0    ,    0,               。