- 博客(6)
- 资源 (2)
- 收藏
- 关注
原创 进程间通信——信号
信号 信号是软件中断,它提供了一种处理异步事件的方法。每个信号都有名字,这些名字以SIG开头,如:SIGALRM是闹钟信号,由alarm函数设置的定时器超时后将产生此信号。 信号都定义在<signal.h>头文件中,并且都是正整数常量。 产生信号的条件: 按键事件信号:如输入Ctrl+C,通常产生中断信号(SIGINT),停止程序。 硬件异常信号:除数为0,无效内存引用等。这些条件通常是硬件检测到,并且通知linux内核,然后内核产生适当地信号。例如,对执行无效内存引用的进程产生SIGSEG
2021-05-02 22:18:59
335
原创 进程间通信--mmap共享内存映射
mmap共享内存映射 //包含的头文件 #include <sys/mman.h> //函数原型 void *mmap(void *addr, size_t length, int prot, int flags, int fd, off_t offset); /* * 参数: * addr: 指定映射区的首地址。通常传NULL,让内核自动分配 * length: 映射区的长度,小于等于文件实际长度 * port: 共享映射区的读写属性。PORT_READ(只读)、PORT_WRITE
2021-04-24 16:05:11
810
原创 进程间通信—管道
管道 在linux操作系统中,为了系统的安全性,有用户空间和内核空间之分。每个进程都工作在独立的0~3G用户空间,互不影响,但是有些时候不同进程之间也需要进行数据交互,这就是进程间通信。进程间之所以能通信,是因为系统中所有进程共享了3G到4G的内核空间。进程间通信方式有:管道、信号、共享内存映射(mmap)、本地套接字。 管道的实质:使用环形队列机制实现的内核空间的一段缓冲区。 管道的分类: 匿名管道; 在程序中通过pipe函数创建,只能用于有血缘关系的进程间通信,如:父子进程、兄弟进程。 有名管道:既可
2021-04-19 22:45:57
555
1
原创 wait和waitpid函数
wait和waitpid函数 在linux操作系统中,进程在创建的时候操作系统会给进程分配一个进程控制块,这个进程控制块结构体里面描述了进程的关键信息,在进程结束后操作系统会将进程控制块回收,释放进程控制块占用的内存资源,而这个回收工作通常是由父进程来完成。父进程回收子进程的时候需要借助wait和waitpid函数完成。 函数介绍 //包含的头文件 #include <sys/types.h> #include <sys/wait.h> //函数原型 pid_t wait(int
2021-04-19 20:46:57
291
原创 linux系统的孤儿进程和僵尸进程
孤儿进程和僵尸进程 孤儿进程:父进程比子进程先退出,此时子进程就会成为一个孤儿进程,但是孤儿进程会被系统的init进程收养,因此init进程在系统中就相当于“进程孤儿院”。 僵尸进程:进程退出了,但是他的系统资源(进程控制块)没有被系统及时回收,此时的进程在系统中就会表现为僵尸态,这种僵尸进程无法使用kill命令杀死。 //模拟孤儿进程,让父进程先退出 #include <stdio.h> #include <unistd.h> #include <fcntl.h>
2021-04-18 22:28:37
154
原创 Windows环境下使用QTcreator作为littleVGL模拟器
准备工作: 下载相关资源文件: littleVGL 模拟器库,下载到的文件名为 lv_pc_simulator.zip 下载链接为: https://littlevgl.com/download/lv_pc_simulator.zip SDL2,下载到的文件名为 SDL2-devel-2.0.12-VC.zip 下载链接为: http://www.libsdl.org/download-2.0.php 2. 在桌面新建文件夹lv_pc_simulator,把压缩包lv_pc_simulator.zip
2020-06-04 15:57:46
1718
6
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人