进程间通信 --->信号灯

有名信号量:
    1.创建
        semget 
        int semget(key_t key, int nsems, int semflg);
        功能:
            创建一组信号量
        参数:
            key:IPC对象名
            nsems:信号量的个数
            semflg:IPC_CREAT 
        返回值:
            成功返回信号量ID
            失败返回-1 

    2.销毁 
        semctl
        int semctl(int semid, int semnum, int cmd, ...);
        功能:   
            向信号灯发送命令
        参数:
            semid:信号灯ID号
            semnum:具体操作信号量的编号
            cmd:
                IPC_RMID    删除信号灯
                SETVAL      设置信号量的值
        返回值:
            成功返回0
            失败返回-1 

        初始化:
        union semun {
            int              val;    /* Value for SETVAL */
            struct semid_ds *buf;    /* Buffer for IPC_STAT, IPC_SET */
            unsigned short  *array;  /* Array for GETALL, SETALL */
            struct seminfo  *__buf;  /* Buffer for IPC_INFO
                                        (Linux-specific) */
        };

    3.申请信号量
    4.释放信号量
        semop 
        int semop(int semid, struct sembuf *sops, size_t nsops);
        功能:
            对信号量完成操作
        参数:
            semid:信号灯的ID号
            sops:信号量操作的数组首地址
            nsops:数组元素个数
        返回值:
            成功返回0 
            失败返回-1 

         unsigned short sem_num;  /* semaphore number */        操作信号量的下标
         short          sem_op;   /* semaphore operation */     具体对信号量的操作(申请:-1  释放:+1)
         short          sem_flg;  /* operation flags */         SEM_UNDO

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/723146.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue+SpringBoot打造实验报告管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 实验管理模块2.2 实验实例模块2.3 实验批阅模块2.4 实验咨询模块 三、系统展示四、核心代码4.1 查询实验4.2 新增实验咨询4.3 回复实验咨询4.4 新增实验实例4.5 查询实验实例 五、免责说明 一、摘要 1.1 项目介绍 基于…

【学习笔记】卫星基础知识

一、什么是卫星以及它如何工作? 通信卫星是一种人造卫星,通过使用转发器在源和接收器之间中继和放大无线电电信信号。卫星的工作原理是接收从地球发送的无线电信号并将无线电信号重新发送回地球。卫星使用从大型太阳能电池阵列收集的太阳能,…

Java面试题【必知必会】基础(2024)

近期一直在准备面试,所以为了巩固知识,也为了梳理,整理了一些java的基础面试题!同时也希望各位英雄和女侠能够补充!不胜荣幸!!! 1. Final 有什么用? final 的意思是最后…

HTML标签分类,web微信开发者工具

第一个阶段,开发环境和工具准备 浏览器 (Google,FireFox,…)下载,安装前端开发工具vscode,下载、安装 node、npm、webpack、webpack-cli、cnpm,配置前端开发环境下载、配置PHP和MyS…

计算机常用的单位以及换算

通常买电脑时候,或者手机的时候,通常会问多大内存? 但是实际你了解内存如何换算吗? 内存可以是1G,2G,4G,等等 首先注意,单位不区分大小写,所以1GB 1Gb 1gB都是相同的。…

Centos安装Jenkins

1、更新系统 (1)更新下系统 sudo yum -y update 安装用于下载java 17二进制文件的wget命令行工具 sudo yum -y install wget vim 2、卸载centos自带的jdk 由于我们安装的版本比较高,需要jdk17,卸载centos自带的jdk。用 下面的…

软件为什么要做软件测试

软件要做测试的原因在于以下几个关键点: 发现和修复错误:软件测试的首要目的是识别并修复代码中的错误、缺陷或漏洞。这些错误可能导致程序崩溃、数据丢失、功能异常等,影响软件的正常运行。 保证质量与可靠性:通过系统性的测试活…

【vue/组件封装】封装一个带条件筛选的搜索框组件(多组条件思路、可多选)详细流程

引入:实现一个带有筛选功能的搜索框,封装成组件; 搜索框长这样子: 点击右侧筛选图标后弹出层,长这样子: 实际应用中有多组筛选条件,这里为了举栗子就展示一组; 预览:…

POST 请求,Ajax 与 cookie

POST 请求则需要设置RequestHeader告诉后台传递内容的编码方式以及在 send 方法里传入对应的值 xhr.open("POST", url, true); xhr.setRequestHeader(("Content-Type": "application/x-www-form-urlencoded")); xhr.send("key1value1&…

07-prometheus的自定义监控-pushgateway工具组件

一、概述 pushgateway用于自定义监控节点、节点中服务的工具,用户可以通过自定义的命令获取数据,并将数据推送给pushgateway中; prometheus服务,从pushgateway中获取监控数据; 二、部署pushgateway 我们可以“随便”找…

微服务高性能通信技术-gRPC实战落地

在微服务架构中,服务之间的通信是至关重要的。为了实现高性能、低延迟和跨语言的服务间通信,gRPC是一个流行的选择。gRPC是一个开源的、高性能的、通用的RPC(远程过程调用)框架,基于HTTP/2协议和Protocol Buffers序列化…

Pytorch学习 day03(Tensorboard、Transforms)

Tensorboard Tensorboard能够可视化loss的变化过程,便于我们查看模型的训练状态,也能查看模型当前的输入和输出结果 在Pycharm中,可以通过按住ctrl,并左键点击某个库来进入源文件查看该库的使用方法SummaryWriter是用来向log_dir…

文件上传到oss上以及下载

<template><!-- 批量渠道变更 --><div><div style"margin-bottom: 10px; display: flex;"><Download name"下载模板" type"Url" url"https://file.wonder-link.net/%E6%89%B9%E9%87%8F%E6%B8%A0%E9%81%93%E5%8F…

140 Linux 系统编程17 ,进程组,会话,创建会话,守护进程

1. 进程组&#xff0c;也称之为作业。代表一个或多个进程的集合。 每个进程都属于一个进程组。在waitpid函数和kill函数的参数中都曾使用到。操作系统设计的进程组的概念&#xff0c;是为了简化对多个进程的管理。 当父进程&#xff0c;创建子进程的时候&#xff0c;默认子进程…

【数据结构】顺序表+链表

目录 1.顺序表 1.1初始化顺序表 1.2销毁顺序表 1.3检查容量并扩容 1.4把某个元素插入到下标为pos的位置 1.5头插和尾插 1.6删除下标为pos的元素 1.7头删和尾删 2.顺序表的问题及思考 3.链表 3.1链表的访问 3.2链表的增删查改 1.顺序表 顺序表的本质其实就是一个数组…

Tensorflow2.0笔记 - 计算梯度

本笔记主要记录tf.GradientTape和tf.gradient的用法 import tensorflow as tf import numpy as nptf.__version__#要计算梯度的所有参数计算过程必须放到gradient tape中 #with tf.GradientTape as tape: w tf.constant(1.) x tf.constant(2.)with tf.GradientTape() as tap…

惯性导航 | 测量方程中的噪声模型与离散时间噪声模型

惯性导航 | 测量方程中的噪声模型与离散时间噪声模型 IMU测量方程中的噪声模型IMU的离散时间噪声模型 IMU测量方程中的噪声模型 在大多数系统中&#xff0c;IMU的噪声由两部分组成&#xff1a;测量噪声&#xff08;Measurement Nosie&#xff09;与零偏&#xff08;Bias&#…

1.1_3 性能指标——时延、时延带宽积、往返时间RTT、利用率

文章目录 1.1_3 性能指标——时延、时延带宽积、往返时间RTT、利用率&#xff08;一&#xff09;时延&#xff08;二&#xff09;时延带宽积&#xff08;三&#xff09;往返时延RTT&#xff08;四&#xff09;利用率 1.1_3 性能指标——时延、时延带宽积、往返时间RTT、利用率 …

wireshark抓取localhost(127.0.0.1)数据包

打开wireshark中&#xff0c;在"capture"菜单中&#xff0c;选择"interfaces"子菜单&#xff0c;在列出的接口中选中"Adapter for loopback traffic capture"即可。 必须安装了Npcap才有此选项&#xff0c;否则需要重新安装wireshark。 抓包截图…

桥梁安全监测方案:多维度的技术与设备应用

一、背景与意义 随着交通基础设施的快速发展&#xff0c;桥梁作为连接两岸的关键纽带&#xff0c;其安全性能直接关系到人们的生命财产安全和交通畅通。为确保桥梁的安全与稳定&#xff0c;及时发现潜在的安全隐患&#xff0c;采取科学、有效的安全监测方案显得尤为重要。本文将…