当前位置: 首页 > article >正文

4、操作系统——进程间通信(2)(system V-IPC介绍)

目录

一、system V-IPC常识

1、key和ID

2、文件描述符

3、函数(ftok)

ftok产生IPC对象的健值key(类似文件路径)

 4、例子

 5、使用命令查看或删除当前系统中的IPC对象

一、system V-IPC常识

1、key和ID

(1)IPC对象的操作接口都比较类似,用key的健值来唯一标识,并且都是“持续性”资源,即创建后不会因为进程退出而消失,会持续存在,删除时要用特殊的函数或者命令

(2)key类似于文件的路径名(唯一)

         ID类似于文件的描述符(可变)

        每打开一次IPC对象,就会获得一个表征这个对象的ID(相当文件IO中的文件描述符),再使用这个ID操作对象。

2、文件描述符

#include <stdio.h>
#include <fcntl.h>
#include <unistd.h>
 
int main(int argc, char* argv[]) {
        int fd = open("test.py", O_RDONLY);
        if (fd == -1) {
                return -1;
        }
        printf("test.py fd = %d \n", fd);
        close(fd);
        return 0;
}

 上述中fd为文件描述符

3、函数(ftok)

ftok产生IPC对象的健值key(类似文件路径)

 4、例子

#include <sys/types.h>
#include <sys/ipc.h>
#include <stdio.h>

int main(int argc, char const *argv[])
{    
    key_t key =  ftok("./",  1 );
    printf("key:%d\n" , key );

    return 0;
}

5、使用命令查看或删除当前系统中的IPC对象

查看消息队列:ipcs -q
查看共享内存:ipcs -m
查看信号量:ipcs -s
查看所有的 IPC 对象:ipcs -a

删除指定的消息队列:ipcrm -q MSG_ID 或者 ipcrm -Q msg_key
删除指定的共享内存:ipcrm -m SHM_ID 或者 ipcrm -M shm_key
删除指定的信号量:ipcrm -s SEM_ID 或者 ipcrm -S sem_key


http://www.kler.cn/a/5052.html

相关文章:

  • 预训练语言模型——BERT
  • Linux:深入了解fd文件描述符
  • 【渗透测试术语总结】
  • C#,图论与图算法,输出无向图“欧拉路径”的弗勒里(Fleury Algorithm)算法和源程序
  • js代理模式
  • with as提高sql的执行效率
  • ASIC-WORLD Verilog(2)FPGA的设计流程
  • 后端之Django-的缓存机制
  • 23种设计模式-桥接模式(安卓应用场景介绍)
  • 转速/线速度/角速度计算FC
  • Spark---持久化
  • 100种思维模型之万物联系思维模型-41
  • 深入剖析 MVC 模式与三层架构
  • 计算机网络第六章(应用层)【湖科大教书匠】
  • Residual_残差模块
  • 蓝桥杯嵌入式STM32 LED模块化封装
  • 数据结构合集
  • 开放平台之敏感数据加密处理
  • JAVA反射机制知多少
  • 红黑树、B树以及B+树及应用
  • 劝退还是坚守?计算机视觉行业综述
  • QT开发笔记(AP3216C )
  • 【新2023Q2模拟题JAVA】华为OD机试 - 最少停车数
  • 【Spring6】资源操作:Resources
  • Hive 流量分析(含维度和不含维度计算)
  • 37.Flexbox简介