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);
相关推荐
tanyongxi6631 分钟前
Linux 中 Git 使用指南:从零开始掌握版本控制
linux·git
UpUpUp……40 分钟前
Linux中Gdb调试工具常用指令大全
linux·运维·服务器·笔记
若云止水1 小时前
ngx_conf_read_token
linux·运维·服务器
重生之我在20年代敲代码1 小时前
Linux工具【1】(编辑器vim、编译器gcc与g++)
linux·服务器·编辑器
眠りたいです1 小时前
Linux:利用System V系列的-共享内存,消息队列实现进程间通信
linux·运维·服务器·c++·进程间通信
pp-周子晗(努力赶上课程进度版)2 小时前
《从零手写Linux Shell:详解进程控制、环境变量与内建命令实现 --- 还会更新》
linux·运维·服务器
achi0102 小时前
Ubuntu 24 常用命令&方法
linux·服务器·ubuntu·ubuntu 24 常用命令·ubuntu 24·ubuntu vi 异常处理
蜜獾云2 小时前
Centos7阿里云yum源
linux·centos
久违 °2 小时前
【渗透测试】反弹 Shell 技术详解(二)
linux·网络·网络安全
chian-ocean2 小时前
Linux 中的管道:进程间数据传输的利器
java·linux·redis