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);
相关推荐
开心大爆炸2 小时前
xrdp 连接 登录对话框输入密码后闪退
linux·运维·服务器
oushaojun22 小时前
大厂 C++ 面试:深度剖析 Linux Signal 信号机制(转)
linux
苏生Susheng3 小时前
【软件实施】Linux系统Shell脚本教程
linux·运维·服务器·chrome·spring boot·学习·实施
Ruiery3 小时前
Linux 6.6内核 IOMMU 深度解析(七):DMA API 与 IOMMU 集成 — 从 dma_map_single 到 iommu_map
linux·运维·服务器
分支预测失败3 小时前
RISC-V AIA 中断架构实战:从 PLIC 到 APLIC 与 IMSIC 的迁移
linux·后端
GeW3 小时前
RHCE学习拿证计划:锁定核心考点,实现备考效率最大化
linux
snow@li4 小时前
服务器运维:Alibaba Cloud Linux 4 LTS 64位 根目录全景深度解析文章
linux·运维·服务器
苏生Susheng4 小时前
【软件实施】Linux企业运维常用命令手册
java·linux·运维·服务器·springboot·springcloud·软件实施
额额额对了4 小时前
Linux 进程间通信(IPC)核心机制:消息队列、共享内存与信号量详解
linux·网络·网络协议
zx_741484814 小时前
【Linux入门】Linux 安装:VMware Workstation Pro 安装 CentOS 7 保姆级图文教程
linux·centos