Linux进程间通信(三)-----System V消息队列

深入解析高通SA8775芯片:性能、架构与研发创新趋势 SA8775芯片凭借其强大的CPU、GPU和AI加速能力,能够应对现代智能系统中的复杂计算任务。它不仅适合高性能计算、深度学习应用,也在汽车、智能设备等领域有广泛的应用前景。无论是在自动驾驶系统中,还是在车载信息娱乐和高级嵌入式系统中,SA8775都展现了其出色的计算能力和能效平衡,是现代智能系统的重要硬件基础。SA8775芯片作为高通的高性能处理平台,具有出色的计算和AI加速能力,但也存在一些值得关注的地方。 阅读详情

消息队列的概念及原理

        消息队列实际上就是在系统当中创建了一个队列,队列当中的每个成员都是一个数据块,这些数据块都由类型和信息两部分构成,两个互相通信的进程通过某种方式看到同一个消息队列,这两个进程向对方发数据时,都在消息队列的队尾添加数据块,这两个进程获取数据块时,都在消息队列的队头取数据块。

其中消息队列当中的某一个数据块是由谁发送给谁的,取决于数据块的类型。

总结一下:

  1. 消息队列提供了一个从一个进程向另一个进程发送数据块的方法。
  2. 每个数据块都被认为是有一个类型的,接收者进程接收的数据块可以有不同的类型值。
  3. 和共享内存一样,消息队列的资源也必须自行删除,否则不会自动清除,因为system V IPC资源的生命周期是随内核的。

消息队列数据结构

当然,系统当中也可能会存在大量的消息队列,系统一定也要为消息队列维护相关的内核数据结构。

消息队列的数据结构如下:

struct msqid_ds {
	struct ipc_perm msg_perm;
	struct msg *msg_first;      /* first message on queue,unused  */
	struct msg *msg_last;       /* last message in queue,unused */
	__kernel_time_t msg_stime;  /* last msgsnd time */
	__kernel_time_t msg_rtime;  /* last msgrcv time */
	__kernel_time_t msg_ctime;  /* last change time */
	unsigned long  msg_lcbytes; /* Reuse junk fields for 32 bit */
	unsigned long  msg_lqbytes; /* ditto */
	unsigned short msg_cbytes;  /* current number of bytes on queue */
	unsigned short msg_qnum;    /* number of messages in queue */
	unsigned short msg_qbytes;  /* max number of bytes on queue */
	__kernel_ipc_pid_t msg_lspid;   /* pid of last msgsnd */
	__kernel_ipc_pid_t msg_lrpid;   /* last receive pid */
};

可以看到消息队列数据结构的第一个成员是msg_perm,它和shm_perm是同一个类型的结构体变量,ipc_perm结构体的定义如下:

struct ipc_perm{
	__kernel_key_t  key;
	__kernel_uid_t  uid;
	__kernel_gid_t  gid;
	__kernel_uid_t  cuid;
	__kernel_gid_t  cgid;
	__kernel_mode_t mode;
	unsigned short  seq;
};

记录一下:共享内存的数据结构msqid_ds和ipc_perm结构体分别在/usr/include/linux/msg.h和/usr/include/linux/ipc.h中定义。

消息队列的创建

创建消息队列我们需要用msgget函数,msgget函数的函数原型如下:

int msgget(key_t key, int msgflg);

说明一下:

  1. 创建消息队列也需要使用ftok函数生成一个key值,这个key值作为msgget函数的第一个参数。
  2. msgget函数的第二个参数,与创建共享内存时使用的shmget函数的第三个参数相同。
  3. 消息队列创建成功时,msgget函数返回的一个有效的消息队列标识符(用户层标识符)。

消息队列的释放

释放消息队列我们需要用msgctl函数,msgctl函数的函数原型如下:

int msgctl(int msqid, int cmd, struct msqid_ds *buf);

说明一下:
msgctl函数的参数与释放共享内存时使用的shmctl函数的三个参数相同,只不过msgctl函数的第三个参数传入的是消息队列的相关数据结构。

向消息队列发送数据

向消息队列发送数据我们需要用msgsnd函数,msgsnd函数的函数原型如下:

int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg);

msgsnd函数的参数说明:

  • 第一个参数msqid,表示消息队列的用户级标识符。
  • 第二个参数msgp,表示待发送的数据块。
  • 第三个参数msgsz,表示所发送数据块的大小
  • 第四个参数msgflg,表示发送数据块的方式,一般默认为0即可。

msgsnd函数的返回值说明:

  • msgsnd调用成功,返回0。
  • msgsnd调用失败,返回-1。

其中msgsnd函数的第二个参数必须为以下结构:

struct msgbuf{
	long mtype;       /* message type, must be > 0 */
	char mtext[1];    /* message data */
};

注意: 该结构当中的第二个成员mtext即为待发送的信息,当我们定义该结构时,mtext的大小可以自己指定。

从消息队列获取数据

从消息队列获取数据我们需要用msgrcv函数,msgrcv函数的函数原型如下:

ssize_t msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg);

msgrcv函数的参数说明:

  • 第一个参数msqid,表示消息队列的用户级标识符。
  • 第二个参数msgp,表示获取到的数据块,是一个输出型参数。
  • 第三个参数msgsz,表示要获取数据块的大小
  • 第四个参数msgtyp,表示要接收数据块的类型。

msgrcv函数的返回值说明:

  • msgsnd调用成功,返回实际获取到mtext数组中的字节数。
  • msgsnd调用失败,返回-1。

System V信号量

信号量相关概念

  • 由于进程要求共享资源,而且有些资源需要互斥使用,因此各进程间竞争使用这些资源,进程的这种关系叫做进程互斥。
  • 系统中某些资源一次只允许一个进程使用,称这样的资源为临界资源或互斥资源。
  • 在进程中涉及到临界资源的程序段叫临界区。
  • IPC资源必须删除,否则不会自动删除,因为system V IPC的生命周期随内核。

信号量数据结构

在系统当中也为信号量维护了相关的内核数据结构。

信号量的数据结构如下:

struct semid_ds {
	struct ipc_perm sem_perm;       /* permissions .. see ipc.h */
	__kernel_time_t sem_otime;      /* last semop time */
	__kernel_time_t sem_ctime;      /* last change time */
	struct sem  *sem_base;      /* ptr to first semaphore in array */
	struct sem_queue *sem_pending;      /* pending operations to be processed */
	struct sem_queue **sem_pending_last;    /* last pending operation */
	struct sem_undo *undo;          /* undo requests on this array */
	unsigned short  sem_nsems;      /* no. of semaphores in array */
};

信号量数据结构的第一个成员也是ipc_perm类型的结构体变量,ipc_perm结构体的定义如下:

struct ipc_perm{
	__kernel_key_t  key;
	__kernel_uid_t  uid;
	__kernel_gid_t  gid;
	__kernel_uid_t  cuid;
	__kernel_gid_t  cgid;
	__kernel_mode_t mode;
	unsigned short  seq;
};

进程互斥

        进程间通信通过共享资源来实现,这虽然解决了通信的问题,但是也引入了新的问题,那就是通信进程间共用的临界资源,若是不对临界资源进行保护,就可能产生各个进程从临界资源获取的数据不一致等问题。

        保护临界资源的本质是保护临界区,我们把进程代码中访问临界资源的代码称之为临界区,信号量就是用来保护临界区的,信号量分为二元信号量和多元信号量。

        比如当前有一块大小为100字节的资源,我们若是一25字节为一份,那么该资源可以被分为4份,那么此时这块资源可以由4个信号量进行标识。

信号量本质是一个计数器,在二元信号量中,信号量的个数为1(相当于将临界资源看成一整块),二元信号量本质解决了临界资源的互斥问题,以下面的伪代码进行解释:

        根据以上代码,当进程A申请访问共享内存资源时,如果此时sem为1(sem代表当前信号量个数),则进程A申请资源成功,此时需要将sem减减,然后进程A就可以对共享内存进行一系列操作,但是在进程A在访问共享内存时,若是进程B申请访问该共享内存资源,此时sem就为0了,那么这时进程B会被挂起,直到进程A访问共享内存结束后将sem加加,此时才会将进程B唤起,然后进程B再对该共享内存进行访问操作。

        在这种情况下,无论什么时候都只会有一个进程在对同一份共享内存进行访问操作,也就解决了临界资源的互斥问题。

        实际上,代码中计数器sem减减的操作就叫做P操作,而计数器加加的操作就叫做V操作,P操作就是申请信号量,而V操作就是释放信号量。

system V IPC联系

        通过对system V系列进程间通信的学习,可以发现共享内存、消息队列以及信号量,虽然它们内部的属性差别很大,但是维护它们的数据结构的第一个成员确实一样的,都是ipc_perm类型的成员变量。

这样设计的好处就是,在操作系统内可以定义一个struct ipc_perm类型的数组,此时每当我们申请一个IPC资源,就在该数组当中开辟一个这样的结构。

也就是说,在内核当中只需要将所有的IPC资源的ipc_perm成员组织成数组的样子,然后用切片的方式获取到该IPC资源的起始地址,然后就可以访问该IPC资源的每一个成员了。

面向元数据的 SAP UI 中枢:namespace sap.ui.mdc 全景解析 如果把应用前端比作一条数据到交互的装配线,sap.ui.mdc 就是那条线的标准化工装:以 PropertyInfo 描述原料,以 Delegate 定义装配方法,以 p13n 与 VariantManagement 交付面向个体的最终产物;而 Condition Model、Operator 与 ValueHelp 则让输入与筛选的语义落地。与 OData V4 服务与 Fiori Elements 宏构件组合使用时,它能在保持一致体验的同时,给自由式开发者留下足够的可编排空间。 阅读详情

相关推荐

保姆级教程:用OpenCV和MediaPipe在Python里实现实时手势识别(附完整代码)

本文提供了一份详细的Python教程,教你如何使用OpenCV和MediaPipe实现实时手势识别系统。从环境配置、手部关键点检测到手势分类算法,逐步讲解如何构建高精度手势识别应用,适用于智能家居控制、PPT操作等场景。教程包含完整代码示例和性能优化技巧,特别适合计算机视觉初学者和开发者实践。

weixin_28677005的博客 327

Linux进程通信之消息队列

Linux 消息队列

m0_60010936的博客 4336

【接地系统篇】电力系统接地技术详解:从基本原理到实际应用

接地是为电流返回电源提供的一条低阻抗通道。简单来说,就是为故障电流修建一条"安全回家"的路,防止电流通过人体或其他不应带电的部件。接地系统选择原则安全性优先:TN-S系统安全性最高,适合重要场所经济性考虑:TN-C系统成本最低,适合一般工业连续性要求:IT系统供电连续性最好,适合特殊场所灵活性选择:TN-C-S系统兼顾经济与安全,应用最广。

2301_81299416的博客 2223

linux学习:队列

我们对队列里的元素操作是有严格限制的:插入一个新节点,必须插入到 指定的一端,而删除一个已有节点,则必须在另一端进行。当我们对一个线性表严格地执行 这样的限制的话,这种线性表就是一种特殊的线性表,称之为队列。为了方便描述,将队列 的插入称为入队,删除称为出队。可以插入节点的那一端称之为队尾,另一端则称之为队头队列这种逻辑结构同样可以使用顺序存储或者使用链式存储,使用顺序存储时,由于出 队入队分别在两端进行,为了避免数据的成片移动造成效率损失,可以考虑使用两个分别指 示队头和队尾的偏移量,来辅助队列操作。

weixin_59669309的博客 950

实战指南:在UE5中高效集成Entt(ECS)框架

本文提供了一份在虚幻引擎5中高效集成Entt ECS框架的实战指南。针对UE5项目在处理大规模动态实体时的性能瓶颈,详细讲解了如何通过数据驱动的ECS架构进行优化。内容包括前期环境准备、核心构建步骤、创建首个ECS子系统以及与UE原生系统的数据同步技巧,旨在帮助开发者快速掌握集成方法,提升游戏逻辑的执行效率。

weixin_29002209的博客 158

外部PLC触发VisionMaster多流程运行

上一讲,介绍了海康VisionMaster与西门子PLC1200进行S7通信。在前一讲的基础上,讲解如何通过PLC触发,实现VisionMaster的多流程运行。

haier123888的博客 4652

[Linux]-进程间通信之消息队列

之前我们使用过的管道比较适用于较少进程之间的通信,那么如果想要实现多个进程之前的通信的话,我们需要使用消息队列消息队列具有如下特点1.消息队列是消息的链表,存放于内存中,内核维护消息队列2.消息队列中的消息是有类型的3.消息队列中的消息是有格式的4.消息队列可实现消息随机查询,并且不一定要遵循先进先出的顺序,而是每个进程可以按照感兴趣的类型进行读取5.与管道相同,读出数据后,消息队列对应数据会被删除6.每个管道都有消息队列标识符,在整个系统中是唯一的7.消息队列允许。

levi的博客 4340

手把手教你学Simulink实例--基于Simulink的电力电子系统电池管理系统(BMS)设计与仿真实例

本文详细介绍了基于Simulink的电池管理系统(BMS)设计与仿真全过程。首先阐述了BMS在安全防护、寿命延长和性能优化方面的必要性,分析了新能源汽车、光伏储能等典型应用场景的技术指标要求。接着详细讲解了Thevenin等效电路和多电平电池模型构建方法,并给出SOC估算、故障诊断等核心算法的MATLAB实现代码。通过设计正常充放电、过充保护等多场景仿真测试,验证了系统在SOC跟踪精度(误差<1.5%)和故障响应速度(<10ms)方面的优异性能。文章还提出了参数优化方法和未来AI融合、数字孪生等发展方向,提

xiaoheshang_123的博客 377

linux 消息队列

管道:没有数据的类型,数据遵守“先进先出”的原则。 消息队列:加强型的管道,他可以指定存放的数据类型,与取走的数据类型,方便不同进程取数据。 消息队列,共享内存,信号量:属于system V(5) 版本的进程通信,也叫ipc通信对象,除了system V进程间的通信外,我们还有POSIX版本的。 查看system V (5)版本的通信对象命令: 查看消息队列: ipcs -q 查看共享内存: ...

ckg3824278的博客 5263

一篇把 Transport 做到可复制的实战指南:从 CTS 底层表到 LSMW、Variant、Layout、TABU、Query、SAPscript 全对象搬运

本文深入解析SAP系统中的Transport机制,将其视为可审计、可追溯的变更流水线。文章从CTS/Transport Organizer通用方法论和具体对象搬运手法两个层面展开,详细介绍了LSMW项目、程序Variant、屏幕/ALV Layout、表数据、ABAP Query、SAPscript和SO10标准文本等对象的传输策略。通过真实案例说明,代码对象往往能被正确传输,但"运行体验"和"业务配置"却常被遗漏,导致QAS测试正常而PRD环境异常。文章提供了一套可

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 170

Python - 多页pdf 合称为一页

尝试使用 ReportLab 来重画 pdf,但探索起来有点麻烦。重要的是解决手头这个问题,所以就算方法蠢,但简单完事。以下生成结果,最有一页 pdf 可能会显示在第一页,手动编辑下 pdf 即可;或者你也可以修改代码逻辑来完善。打印ppt,一页占用A4纸比较浪费,想多页合成一个 A4大小;安装 fitz,单独安装 fitz 使用可能会报错。将 PDF 拆分为 图片来保存。

AI工程化、开源分享、文档翻译、代码笔记 1425

Linux17 --- 消息队列

消息队列

kyrie_sakura的博客 1372

VCAST创建单元测试工程

选择工作目录,后面创建胡UT工程将会生成到这个目录。

qq_42851449的博客 2481

【Linux 】二十.进程间通信篇三《Linux System V IPC 完全指南:共享内存、消息队列与信号量全解》

共享内存区是最快的IPC形式。⼀旦这样的内存映射到共享它的进程的地址空间,这些进程间数据传递不再涉及到内核,换句话说是进程不再通过执⾏进⼊内核的系统调⽤来传递彼此的数据进程间通信的第一步永远是"让两个进程能看到同一块资源",资源都看不到,数据就没法传。管道是怎么实现的?匿名管道靠父子进程继承文件描述符,命名管道靠文件路径唯一,大家认准同一个路径就能找到同一份文件。不管哪种管道,本质上都是文件资源,之前给大家也介绍了,Linux下一切皆文件。之前学管道的时候就知道,进程间通信的第一步永远是"让两个进程先看到同

2501_93351213的博客 933

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Linux进程间通信(IPC)编程实践(三) 详解System V消息队列(1)

消息队列简介 消息队列提供了一个从一个进程向另外一个进程发送一块数据的方法(本机);每个数据块都被认为是有一个类型,接收者进程接收的数据块可以有不同的类型值。消息队列也有管道一样的不足:  (1)每个消息的最长字节数的上限(MSGMAX);  (2)系统中消息队列的总条数也有一个上限(MSGMNI);  (3)每个消息队列所能够保存的总字节数是有上限的(MSGMNB) .  

NK_test的博客 2748

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Linux System V IPC机制深度解析:共享内存、消息队列与信号量

在多进程编程中,进程间通信(IPC)是一个核心话题。System V IPC是Unix/Linux系统中经典的进程间通信机制,它包括共享内存、消息队列和信号量。本文将深入探讨这三种IPC机制的原理、使用方法和内核实现。

2401_86779365的博客 787

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Linux进程间通信:管道与System V IPC的全解析

进程间通信摘要 进程间通信(IPC)是不同进程之间进行数据交互的机制。由于进程独立性,通信成本较高。IPC本质是让不同进程访问同一份资源(特定内存空间),通常由操作系统提供。主要分类包括管道(匿名/命名)、System V IPC和POSIX IPC等。 匿名管道通过父子进程共享文件资源实现单向通信,需搭配pipe和fork函数使用。其特征包括:血缘关系限制、单向通信、同步互斥、字节流传输等。命名管道则通过唯一文件名允许无亲缘关系进程通信。 管道使用需注意四种读写情况,包括阻塞机制和异常处理。管道文件是内存

Surplus886的博客 1242

[Linux]进程间通信IPC(system V)

本文介绍了System V IPC机制的核心概念与实现方式。内核通过IPC资源表管理共享内存、消息队列和信号量三类资源,使用key标识唯一性,操作时通过shmget/msgget/semget返回的ID进行访问。详细列举了相关系统调用接口和终端命令(ipcs/ipcrm),并对比分析了三种IPC机制的特性:共享内存具有最高性能但需自行同步;消息队列支持结构化消息;信号量通过P/V操作实现资源访问控制。特别强调了共享内存的页对齐分配特性,以及信号量在保护临界资源时的互斥与同步机制。

我的博客 407

Linux:进程间通信IPC(interprocess)——消息队列,共享内存,信号灯(system v分支进程通信方法)

本文介绍了Linux系统中三种进程间通信(IPC)机制:消息队列、共享内存和信号灯。消息队列通过ftok生成键值、msgget创建队列、msgsnd/msgrcv收发消息、msgctl销毁队列实现通信。共享内存通过shmget申请内存、shmat映射内存、shmdt解除映射、shmctl删除内存实现高效数据共享。信号灯通过semget创建信号量数组、semctl初始化、semop操作实现进程同步。文中提供了各机制的详细函数接口说明、核心流程步骤和C语言示例代码,包括消息队列的发送/接收程序、共享内存的读写程

2301_81830380的博客 940

解码IPC-消息队列、共享内存与信号量集

System-V IPC 是 Linux 进程间通信标准,含消息队列、共享内存、信号量集三类持久性资源,通过键值(key)标识,需手动创建 / 删除。 共性:依赖 ftok () 生成唯一键值,可通过 ipcs/ipcmk/ipcrm 命令管理,资源常驻内存需手动清理。 特性:消息队列按类型传数据,自带阻塞;共享内存效率最高,需信号量互斥;信号量集负责进程同步,靠 P/V 原子操作。 适用场景:按类型传数据用消息队列,高效共享数据用共享内存 + 信号量,协调临界资源访问用信号量集。

愿能与同路的你交流互鉴~ 博客园 :https://www.cnblogs.com/YouEmbedded/ 1183

学习笔记—Linux—IPC-System V

本文介绍了Linux系统中基于SystemV的三种进程间通信机制:共享内存(shm)、消息队列(msg)和信号量(sem)。重点讲解了共享内存的实现原理和使用方法,包括shmget创建共享内存、shmat挂接共享内存、shmdt取消挂接等接口函数,并通过示例演示了进程间通信的实现过程。简要说明了消息队列的基本概念和使用方法,包括msgget创建队列、msgsnd发送消息、msgrcv接收消息等操作。最后概述了信号量的基本概念和SystemV的统一管理机制,指出Linux通过ipc_ids结构体统一管理这三种

2401_83231468的博客 541

深度拆解 Linux 进程间通信(IPC):从管道到 System V 全链路详解

数据传输:⼀个进程需要将它的数据发送给另⼀个进程。资源共享:多个进程之间共享同样的资源。通知事件:⼀个进程需要向另⼀个或⼀组进程发送消息,通知它(它们)发生了某种事件(如进 程终止时要通知父进程)。进程控制:有些进程希望完全控制另⼀个进程的执行(如Debug进程),此时控制进程希望能够 拦截另⼀个进程的所有陷入和异常,并能够及时知道它的状态改变。怎么通信?进程间通信的本质是先让不同的进程看到同一份"资源",然后才有通信条件。

chen060603的博客 555

【Linux/C++多进程篇(二) 】万字解析从“传纸条”到“建仓库”:一文读懂linux系统编程之进程间通信 (IPC)

本文深入探讨了Linux/C++中的进程间通信(IPC)机制。首先介绍了无名管道和有名管道的实现原理及使用场景,通过代码示例展示了父子进程间的数据传递。接着讲解了信号通信的异步特性及其在进程控制中的应用,包括信号处理函数的编写和僵尸进程回收技巧。然后详细阐述了System V提供的三种IPC方式:消息队列(结构化消息传递)、共享内存(高效数据共享)和信号量(同步控制),通过完整项目案例展示了它们的具体实现。文章最后总结了各种IPC机制的优缺点及适用场景,帮助开发者根据实际需求选择合适的通信方式。

2501_93095927的博客 3246

【Linux】第7期 进程间通信 (IPC) 详解:管道 (匿名 / 命名) + System V

System V 共享内存是所有本机进程间通信中速度最快的方案内核在物理内存中开辟一块独立的内存区域,允许多个进程将这块物理内存映射到自身的虚拟地址空间中。映射完成后,进程直接读写自己的虚拟地址指针,就等同于操作这块共享的物理内存,全程不需要内核中转数据,也没有额外的内存拷贝⚠️ 天生缺陷:共享内存本身没有任何同步与互斥机制,多个进程同时读写会出现数据竞争、内容撕裂,必须配合信号量、互斥锁等同步工具一起使用System V 消息队列的本质是内核维护的一条链式消息队列。

2501_93298789的博客 580

进程间通信:消息队列、信号量与内核管理

SystemV IPC机制提供了三种进程间通信方式:消息队列、信号量和共享内存。消息队列支持有类型的数据块传输,通过msgget/msgsnd/msgrcv等函数实现;信号量作为计数器用于进程同步互斥,通过semget/semop等函数操作;共享内存是最快的IPC方式但需配合信号量使用。这些资源都通过内核统一管理,具有生命周期随内核、需手动删除的特点。核心区别在于:消息队列传输结构化数据,信号量提供同步机制,共享内存实现高效数据共享。三者配合可构建复杂的进程通信系统,其中信号量是保证共享资源安全访问的关键。

原来是猿的成长足迹 779

Linux进程间通信与信号处理核心技术解析

进程间通信(IPC)是操作系统实现多进程协作的核心机制,通过共享内存、消息队列和信号量等技术实现数据交换与同步。其中共享内存通过直接映射物理内存实现最高效的数据传输,消息队列提供结构化的异步通信能力,而信号量则是解决资源竞争的关键同步原语。在Linux系统编程中,kill/pause系统调用与System V IPC三大机制(共享内存、消息队列、信号量)构成了进程控制的基石,广泛应用于分布式系统、实时交易等高性能场景。合理选择IPC机制能显著提升系统吞吐量,例如共享内存适合大数据量交换,消息队列适用于结构化

weixin_30251829的博客 397
上一篇: Linux进程间通信(二)-----system V共享内存
下一篇: Linux进程 ----- 信号产生
chen_ever
博客等级 码龄4年 497粉丝 78原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值