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);
相关推荐
有谁看见我的剑了?3 小时前
linux 添加硬盘后系统识别不到硬盘处理
linux·运维·服务器
yc_12244 小时前
用 Visual Studio 远程调试 Linux:从零到流畅的完整指南
linux·ide·visual studio
计算机安禾5 小时前
【Linux从入门到精通】第31篇:防火墙漫谈——iptables与firewalld防护指南
linux·运维·php
下一页盛夏花开5 小时前
ubuntu 20中安装QT以后出现红色空心断点
linux·运维·ubuntu
sanshanjianke6 小时前
Thunderobot 911ME 笔记本 Linux 风扇控制研究
linux
fengyehongWorld8 小时前
TeraTerm ttl脚本登录wsl
linux·teraterm
乌托邦的逃亡者9 小时前
Linux中如何检测IP冲突
linux·运维·tcp/ip
一曦的后花园9 小时前
linux搭建promethes并对接node-exporter指标
linux·运维·服务器
乌托邦的逃亡者10 小时前
CentOS/Openeuler主机中,为一个网卡设置多个IP地址
linux·运维·网络·tcp/ip·centos
念恒1230610 小时前
进程控制---自定义Shell
linux·c语言