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);
相关推荐
高旭的旭10 分钟前
Linux V4L2框架详解:Camera软件架构与驱动实现
linux·嵌入式·camera·v4l2
Raymond运维16 分钟前
MySQL包安装 -- SUSE系列(SUSE资源库安装MySQL)
linux·运维·数据库·mysql
九皇叔叔1 小时前
Linux 系统配置 NTP 服务:轻松同步阿里云时间服务器
linux·服务器·阿里云
東雪蓮☆2 小时前
K8S 概念、安装与核心工作机制详解
linux·运维·云原生·容器·kubernetes
rain bye bye2 小时前
vim 中设置高亮
linux·编辑器·vim
第四维度42 小时前
【全志V821_FoxPi】6-3 GC2083 MIPI摄像头适配
linux·tina·v821·gc2083
liulilittle2 小时前
Linux 内核网络调优:单连接大带宽吞吐配置
linux·运维·服务器·网络·信息与通信·通信
玩机达人883 小时前
三星S25Ultra/S24安卓16系统Oneui8成功获取完美root权限+LSP框架
android·linux·里氏替换原则
愚润求学3 小时前
【Linux】数据链路层 and 其他知识
linux·运维·网络
刀法孜然3 小时前
vim 编辑中,临时挂起编辑器进程,返回到终端命令行
linux·编辑器·vim