Linux信号量

Linux之进程间通信
信号量

  • 进程间通信IPC的目的:数据传送、进程同步或互斥

信号量

c 复制代码
#include <sys/ipc.h>
#include <sys/sem.h>

int main()
{
	//申请信号量
	semget();

	semctl();
}

POSIX IPC

信号量

无名信号量

  • 可用于线程间通信
c 复制代码
#include <semaphore.h>
int main()
{
	sem_t sem_id;
	
	sem_init(&sem_id, 0, 1);	//初始化信号量

	sem_wait(&sem_id);		//P操作, will block
	//sem_trywait(&sem_id);	//try to P操作, won't block
	
	//访问临界资源
	
	sem_post(&sem_id);		//V操作
	
	sem_destroy(&sem_id);	//销毁信号量
}

有名信号量

c 复制代码
char* SEM_NAME = "sem1";

//初始化信号量
sem_t* mutex = sem_open(SEM_NAME, O_CREAT, 0644, 1);

sem_wait(mutex);
//访问临界资源
sem_post(mutex);

sem_close(mutex);
sem_unlink(SEM_NAME);
相关推荐
卓琢1 小时前
(九)Shell 脚本(四):正则表达式、sed 和 awk 详解
linux·mysql·正则表达式
一切皆是定数2 小时前
Linux驱动开发——LED驱动开发
linux·驱动开发·b树
小小不董2 小时前
图文深入理解Oracle DB Scheduler
linux·运维·服务器·数据库·oracle
不烦下雨c3 小时前
[网络]抓包工具介绍 tcpdump
linux·tcpdump
南瓜小米粥、3 小时前
通过fdisk初始化Linux数据盘
linux·运维·服务器
秋风起,再归来~3 小时前
【Linux庖丁解牛】—Linux基本指令(中)!
linux·指令
Eternal-Student3 小时前
预处理、编译、汇编、链接
linux·汇编·windows
sp_wxf4 小时前
Stream流
linux·服务器·windows
LYK_HAHA4 小时前
centos常用知识和命令
linux·运维·centos
可涵不会debug5 小时前
【Linux】信号知识三把斧——信号的产生、保存和处理
linux·运维·信号