Linux
文章平均质量分 75
昨天;明天。今天。
这个作者很懒,什么都没留下…
展开
-
I/O多路转接之epoll
I/O多路转接之epoll原创 2023-04-03 09:57:38 · 489 阅读 · 4 评论 -
epoll、select和poll之间对比
1. epoll的优点(和 select 的缺点对应)2. select2-1 select的特点2-2 select缺点3. poll3-1 poll的优点3-2 poll的缺点原创 2023-04-01 10:19:16 · 209 阅读 · 5 评论 -
I/O多路转接之select和非阻塞IO
I/O多路转接之select和非阻塞IO原创 2023-03-28 21:01:46 · 595 阅读 · 2 评论 -
五种IO模型
五种IO原创 2023-03-27 17:39:15 · 95 阅读 · 1 评论 -
_Linux (读者写者问题)
在编写多线程的时候,有一种情况是十分常见的。那就是,有些公共数据修改的机会比较少。相比较改写,它们读的机会反而高的多。通常而言,在读的过程中,往往伴随着查找的操作,中间耗时很长。给这种代码段加锁,会极大地降低我们程序的效率。那么有没有一种方法,可以专门处理这种多读少写的情况呢?原创 2023-02-11 16:49:07 · 187 阅读 · 2 评论 -
_Linux (常见的各种锁)
常见锁原创 2023-02-11 16:37:38 · 121 阅读 · 0 评论 -
_Linux (线程池)
线程池原创 2023-02-10 23:43:42 · 450 阅读 · 1 评论 -
_Linux 多线程(信号量)
信号量概念基于环形队列的生产消费模型原创 2023-02-08 18:28:53 · 540 阅读 · 0 评论 -
_Linux多线程--生产者消费者模型篇
1. 为何要使用生产者消费者模型2. 基于BlockingQueue的生产者消费者模型3. C++ queue模拟阻塞队列的生产消费模型原创 2023-01-14 19:12:44 · 497 阅读 · 5 评论 -
_Linux多线程-死锁&&Linux线程同步篇
文章目录1. 死锁死锁四个必要条件避免死锁避免死锁算法(了解)2. Linux线程同步线程同步出现的背景条件变量同步概念与竞态条件条件变量函数1. 初始化2. 销毁3. 等待条件满足4. 唤醒等待小结测试实验原创 2023-01-13 17:20:58 · 574 阅读 · 3 评论 -
_Linux多线程(可重入VS线程安全)
文章目录概念常见的线程不安全的情况常见的线程安全的情况常见不可重入的情况常见可重入的情况可重入与线程安全联系可重入与线程安全区别原创 2023-01-13 15:11:46 · 510 阅读 · 1 评论 -
_Linux多线程-线程互斥篇
文章目录1. 进程线程间的互斥相关背景概念2. 互斥量mutex3. 互斥量的接口初始化互斥量销毁互斥量互斥量加锁和解锁4. 互斥量---锁静态分配(初始化)动态分配(初始化)5. 互斥量实现原理探究6. 总结:原创 2023-01-12 17:17:59 · 620 阅读 · 3 评论 -
_Linux多线程-线程控制篇
文章目录1. POSIX线程库2. 创建线程3. 线程ID及进程地址空间布局4. 线程等待5. 线程终止pthread_ exitpthread_ cancel6. 分离线程7. 总结原创 2023-01-10 17:12:00 · 258 阅读 · 0 评论 -
_Linux多线程-基础篇
文章目录1. 什么是线程Linux中的线程叫做轻量级进程(LWP)2. 线程的优点3. 线程的缺点4. 线程异常5. 线程用途6. Linux进程VS线程单进程7. 总结线程在进程内部执行是OS调度的基本单位。不同视角看待进程轻量级进程原创 2023-01-09 16:00:28 · 577 阅读 · 1 评论 -
_Linux 进程信号-信号处理篇
文章目录前言捕捉信号1. 内核如何实现信号的捕捉2. sigaction代码验证可重入函数volatile(关键字)SIGCHLD信号实验一实验二原创 2023-01-08 17:03:08 · 677 阅读 · 0 评论 -
_Linux 进程信号-信号保存篇
文章目录前言阻塞信号1. 信号常见概念2. 在内核中的表示信号处理过程3. sigset_t4. 信号集操作函数sigprocmasksigpending5. 测试与验证实验一实验二实验三原创 2023-01-05 17:25:54 · 780 阅读 · 1 评论 -
_Linux 进程信号-基础篇
信号入门1. 生活角度2. Linux技术应用角度3. 知识小点4. 信号概念5. kill -l命令6. 信号处理常见方式产生信号1. 通过终端按键产生信号Core Dump2. 调用系统函数向进程发信号系统调用接口概述3. 由软件条件产生信号软件条件给进程发送信号概述4. 硬件异常产生信号理解除0异常(硬件问题)理解野指针或者越界问题(硬件问题)总结原创 2023-01-04 19:22:40 · 512 阅读 · 0 评论 -
_Linux (ipc命令)
ipcs 查看进程间通信资源/ipcrm 删除进程间通信资源。-m 针对共享内存的操作。-q 针对消息队列的操作。-a 针对所有资源的操作。-s 针对信号量的操作。原创 2022-12-02 15:42:41 · 1012 阅读 · 5 评论 -
_Linux(共享内存)
文章目录0. 共享内存1. 共享内存示意图2. 共享内存函数2.1 shmget函数2.2 shmat函数2.3 shmdt函数2.4 shmctl函数2.5 查看共享内存指令2.6 删除共享方法2.6.1 指令删除2.6.2 代码删除3. 实例代码3.0 log.hpp打印日志信息3.1 comm.hpp(shmServer.cc和shmClicent.cc共有文件)3.2 shmServer.cc3.2.1 创建公共的key值3.2.2 创建共享内存3.2.3 挂接原创 2022-12-02 09:47:47 · 691 阅读 · 1 评论 -
_linux 进程间通信(命名管道)
文章目录1. 创建一个命名管道2. 用命名管道实现server&client通信2.0 log.hpp打印日志信息2.1 comm.hpp(server.cc和client.cc共有文件)2.2 server.cc读取数据2.3 client.cc发送数据2.4 结果展示3. 还可以多个进程接收原创 2022-11-26 22:34:31 · 744 阅读 · 2 评论 -
_linux 进程间通信(匿名管道)
3. 总结管道特点管道是用于进行具有血缘关系的进程进行进程通信的–常用于父子通信管道具有通过让进程间协同,提供了访问控制!管道提供的是面向流式的通信服务–面向字节流–协议管道是基于文件的,文件的生命周期随进程的,即管道的生命周期随进程的。管道是单项通信的,就是半双工通信的一种特殊情况。原创 2022-11-20 20:40:02 · 645 阅读 · 0 评论 -
_linux 进程间通信(管道)
文章目录1. 进程间通信目的2. 进程间通信发展3. 进程间通信分类4. 管道原创 2022-11-20 20:03:57 · 431 阅读 · 0 评论 -
_Linux 动态库
0. 前言1. 生成动态库1.1 我们把静态库和动态库打包1.2 当动静库同时存在的时候默认生成的是动态库1.3 -static2. 动态库的使用2.1 运行动态库的方法3. 库文件名称和引入库的名称原创 2022-11-06 11:42:52 · 782 阅读 · 4 评论 -
_Linux 静态库
我们知道我们用软件,需要下载;那我们使用别人的静态库也需要下载;而这里的下载就是把hello路径下的所以东西通过cp指令拷贝的我们使用者(用户)的路径下。我们把自己的库和头文件拷贝到这个路径下,我们就可以正常使用了,最好不要作,容易造成库污染。我们要知道,别人给我们.o和.h文件的时候,我们就可以用别人写好的库了。生成之后,我们要通过目录分开.h和库文件,为调用静态库作准备。这很正常,因为我们写的库属于第三方库。我们gcc后出现下图情况。头文件gcc默认搜索路径。库文件gcc默认搜索路径。原创 2022-11-02 14:02:41 · 817 阅读 · 6 评论 -
_Linux理解软硬链接
通过上面我们知道一个空目录下的硬链接数是2,因为还有2个(.)它也是一个文件,指当前目录(即自己目录名);)它也是一个文件指上一级目录(即自己目录内部)通过上面知识储备我们知道,真正找到磁盘上文件的并不是文件名,而是inode。一个block的大小是由格式化的时候确定的,并且不可以更改。inode编号—>分区特定的Block group —> inode—> 属性—> 内容。文件名:inode编号的映射关系,互为Key值。显示文件名与属性:需要r(读权限)进入目录:需要x(执行权限)原创 2022-11-01 16:16:33 · 315 阅读 · 0 评论 -
_Linux 理解重定向与使用dup2
文件描述符中1在c语言是stdout;我们要实现重定向先了解原理。我们就轻易发现本来打印在屏幕的内容,输入到文件中。原创 2022-10-14 18:27:10 · 297 阅读 · 0 评论 -
_linux文件描述符分配规则
Linux进程默认情况下会有3个缺省打开的文件描述符,分别是标准输入0(stdin), 标准输出1(stdout), 标准错误2(stderr).发现是结果是: fd: 0 或者 fd 2 可见,文件描述符的分配规则:在files_struct数组当中,找到当前没有被使用的。通过上面代码的验证,我们知道0,1,2已经默认打开,而之后文件会从3开始依次往后。0,1,2对应的物理设备一般是:键盘,显示器,显示器。最小的一个下标,作为新的文件描述符。原创 2022-10-14 16:27:07 · 291 阅读 · 0 评论 -
linux--open
open 函数具体使用哪个,和具体应用场景相关,如目标文件不存在,需要open创建,则第三个参数表示创建文件的默认权限,否则,使用两个参数的open。注意:flags这些参数是宏,而这些宏的定义是一些二进制数,下面谈用法。例子:看图0x10x20x4通过上面的例子我们就可以了解到flags怎么传值的用法。原创 2022-10-11 23:01:13 · 271 阅读 · 3 评论 -
简易的shell实现
简单shell实现原创 2022-09-23 17:20:10 · 626 阅读 · 0 评论 -
进程程序替换-Linux
替换原理替换函数函数解释原创 2022-09-23 09:30:16 · 398 阅读 · 4 评论 -
_Linux进程控制
本节重点:学习进程创建,fork/vfork学习进程等待学习进程终止,认识$?原创 2022-09-16 09:24:41 · 511 阅读 · 2 评论 -
程序地址空间--Linux
文章目录01. 研究背景02. 程序地址空间分布1)空间布局图2)上段代码,来感受一下。3)写时拷贝03. 进程地址空间分页&虚拟地址空间扩展--只做本章了解。原创 2022-09-10 11:25:06 · 573 阅读 · 10 评论 -
linux--进程3)
文章目录01. 进程优先级基本概念查看系统进程PRI and NI查看进程优先级的命令其他概念02. 环境变量基本概念常见环境变量和环境变量相关的命令测试PATH环境变量的组织方式通过代码如何获取环境变量通过系统调用获取或设置环境变量环境变量通常是具有全局属性的...原创 2022-08-05 13:58:09 · 350 阅读 · 0 评论 -
linux--进程2)
01.进程状态001. Linux内核源代码002. 进程状态查看Z(zombie)-僵尸进程僵尸进程危害孤儿进程原创 2022-08-05 11:22:18 · 142 阅读 · 0 评论 -
linux--进程1)
文章目录00. 前言01. 进程001. 基本概念002. 描述进程-PCB0001. task_struct-PCB的一种0002. task_ struct内容分类02. 查看进程03. 通过系统调用获取进程标示符04. 通过系统调用创建进程-fork初识原创 2022-08-02 17:33:13 · 598 阅读 · 0 评论 -
Linux调试器-gdb使用
Linux调试器-gdb使用原创 2022-08-01 16:42:20 · 163 阅读 · 0 评论 -
Linux项目自动化构建工具 -make/makefile
makefile/make原创 2022-08-01 12:52:48 · 591 阅读 · 0 评论 -
了解Linux下的gcc--会用
文章目录00. 前言01. 预处理02. 编译03. 汇编04. 链接原创 2022-08-01 12:23:26 · 170 阅读 · 0 评论 -
Linux编辑器-vim使用
vim的三种模式: 命令模式、编辑\插入模式、底行模式。小丁带你快速入门原创 2022-07-21 19:00:17 · 745 阅读 · 0 评论 -
Linux------权限篇2)
Linux中有很多指令,这些都需要我们理解去记;但上百条指令我们很难记全。此时最好的记忆方法,就是多用—就是多上手操作。文章目录0. 前言0/. 链接:04/. 续文件访问权限004. umask05. 目录的权限001. 粘滞位...原创 2022-07-21 11:29:28 · 328 阅读 · 0 评论