
多进程
Qt上位机开发
从事上位机软件商业应用开发6年,精通Qt编程,熟悉C++语言、C语言、TCP/UDP编程、多线程编程
展开
-
linux之共享内存是什么
共享内存直接操作物理内存,不需要拷贝,它通过向内核申请一块内存,映射到进程自身的虚拟地址空间中 可以直接读写这个进程的空间,提高效率。 可以通过ipcs -m 命令查看共享内存的有关信息。 写操作: #include <stdio.h> #include <sys/shm.h> #include <sys/ipc.h> #include <str...原创 2019-04-28 23:14:52 · 802 阅读 · 0 评论 -
玩一下linux下的消息队列
消息队列的特性: 1)消息队列是一个消息链表,用户可以在消息队列中添加消息、读消息 2)调用的进程必须拥有足够的权限才能对消息队列进行读、写操作 3)消息队列可以按照类型来发现或者接收消息 4)消息队列是IPC对象的一种。消息队列中可以通过唯一的ID来标识 (IPC对象是活动在内核级别的一种,是进程间通信的工具) 接收端代码: #include <sys/t...原创 2019-04-27 22:36:31 · 360 阅读 · 0 评论 -
有名管道的实现
有名管道有文件名,存在于文件系统中。在同一个系统中,数据可以在任意的进程间通信。 写入端代码: #include<stdio.h> #include<sys/types.h> #include<sys/stat.h> #include<fcntl.h> #define FIFO "/tmp/fifo" //tmp目录下的fifo文件 int...原创 2019-04-27 20:18:53 · 641 阅读 · 0 评论 -
无名(匿名)管道实现
无名管道没有文件名,存在于内存中。当进程结束后,管道也随之结束。 管道的读端是有阻塞的,会等到有数据写入才返回。如果写段关闭,读端会马上返回。 它无法保证数据的原子性。一般用于无名管道一般用于两个进程之间通信。 以下是无名管道代码的基本实现。主要是运用fork()函数诞生子进程,并注意数组元素pipefd[1]写段,pipefd[0]是读端。 pipe必须在fork()之前创建,才能...原创 2019-04-27 16:48:10 · 614 阅读 · 0 评论 -
进程的基本概念和几种通信方式
进程的定义: 进程就是程序的执行过程,是操作系统动态执行的基本单元。 在计算机中,每个进程都有一个非负整数表示的唯一进程ID(因此在某些业务中可以通过进程ID来杀死该进程)。 进程是唯一的,但是进程号是可复用的,当一个进程被杀死后,它的进程ID会成为复用的候选者。 进程间的几种通信方式: 无名管道(pipe): 管道是一种半双工的通信方式。数据只能单向流动,而且只能在具有亲缘关系的进程间...原创 2019-04-27 16:35:16 · 636 阅读 · 0 评论