Linuxの下でC言語のプログラミング——信号の処理
1.信号生成LinuxにおけるC言語プログラミング——メッセージ管理1.POSIX無名信号量(Linuxは無名信号量のみ実現)
2.System V信号量
#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, 。