Linux进程通信总结
1、信号量
信号量是一种计数器,可以用来控制多个进程对共享资源的访问。他经常作为一种锁机制,防止某个进程正在访问共享资源时,其他进程也进行访问。
因此,信号量主要作为进程间以及同一进程内不同线程的同步手段
1)Api
信号量的创建 #include <sys/types.h>
#include <sys/ipc.h>
#include <sys/sem.h>
int semget(key_t key, int semnums, int semflag);
参数: key: 所创建、打开信号量集合所使用的key semnums: 信号量集合中信号量的个数 falg: 用函数操作的类型、也可以操作信号量集合的访问权限
返回值:
成功:信号机的IPC标识符(一个正数)
失败:-1, 同事errno会被设置成相应的值