
Linux
文章平均质量分 78
以Linux的知识点为主,伴随着部分小项目对知识点的练习,使得对Linux的掌握更加扎实稳固!
CAccept
本人是一名在校学生,专注于学Cplus,也通过Linux和QT做了几个几千行左右的项目,对于算法是又恐惧又喜爱,在博客中会分享一些Cplus、服务端、Linux、QT知识还会分享一些算法题目,学习本就是时而欣喜若狂时而郁郁寡欢,希望我们能够共同进步,一路AC!!
展开
-
进程间通信之匿名管道(pipe)
本篇博客介绍了进程间通信中常用的一种机制——匿名管道(pipe)。在现代应用程序开发中,进程间通信是一项关键任务,用于实现不同进程之间的数据传输和交互。通过本文,你将深入了解匿名管道的概念、原理和在进程间通信中的应用。原创 2023-07-14 08:00:00 · 419 阅读 · 0 评论 -
进程间通信之信号
本篇博客介绍了进程间通信中的一种重要机制——信号。在现代应用程序开发中,进程间通信是一项关键任务,用于实现不同进程之间的数据传输和交互。通过本文,你将深入了解信号的概念、原理和在进程间通信中的应用。原创 2023-07-11 08:00:00 · 292 阅读 · 0 评论 -
孤儿&僵尸&守护进程基本概念与使用
本文将介绍Linux操作系统中的三种进程状态:孤儿进程、僵尸进程以及守护进程。首先我们将介绍这些进程状态的概念及其产生原因,然后详细讨论如何避免这些进程状态的出现。对于孤儿进程,我们将探讨如何通过将父进程退出来避免子进程成为孤儿进程;对于僵尸进程,我们将讲解如何通过wait()系统调用及时清除这些已经结束的子进程;对于守护进程,我们将介绍如何通过daemon()系统调用创建一个后台运行的进程,保证服务的持续运行。通过本文的介绍,读者将对Linux操作系统中进程管理的原理和实践有更深的了解。原创 2023-04-21 18:32:30 · 926 阅读 · 0 评论 -
Socket网络字节序—简单易懂
网络字节序在计算机的世界中有两种字节序大端字节序:高地址存低位,低地址存高位小端字节序:低地址存低位,高地址存高位比如我们的端口号就是用16位来存储两个字节,比如端口号为1001用16进制表示为0x03 e9网络数据流同样有大端小端之分,那么如何定义网络数据流的地址呢?发送主机通常将发送缓冲区中的数据按内存地址从低到高的顺序发出,接收主机把从网络上接到的字节依次保存在接收缓冲区中,也是按内存地址从低到高的顺序保存,因此,网络数据流的地址应这样规定:先发出的数据是低地址,后发出的数据原创 2020-07-30 17:23:38 · 1809 阅读 · 2 评论 -
Linux项目日志管理log4cpp的安装与使用【结合sample】
log4cpp是一个功能强大的C++日志库,它能够帮助开发者轻松地进行项目日志管理。该库支持多种日志级别和多种日志输出方式,能够满足不同的日志输出需求。同时,它还支持日志滚动和多线程安全,能够保证日志输出的稳定性和可靠性。原创 2023-04-16 18:49:38 · 1231 阅读 · 0 评论 -
工程化项目配置【iniparser的安装与使用】
通过本文,读者能够了解如何在Linux中使用iniparser库来解析INI文件,并学习如何使用CMake来构建C++项目。在实际工作中,配置文件是非常常见的,而INI文件作为其中的一种格式也是非常重要的。因此,掌握使用iniparser库来解析INI文件的方法,将有助于我们更加高效地处理配置文件。此外,使用CMake来构建C++项目也是一个非常重要的技能,它可以帮助我们更好地管理和组织我们的代码。原创 2023-04-14 18:51:00 · 829 阅读 · 0 评论 -
单元测试gtest的安装与使用方法【结合官网的sample】
gtest单元测试是Google的一套用于编写C++测试的框架,可以运行在很多平台上(包括Linux、Mac OS X、Windows、Cygwin等等)。基于xUnit架构。支持很多好用的特性,包括自动识别测试、丰富的断言、断言自定义、死亡测试、非终止的失败、生成XML报告等等,本文对gtest的安装以及基本使用方法进行细致说明,希望对您有所帮助。原创 2023-04-03 17:24:16 · 7483 阅读 · 8 评论 -
高性能内存池设计【Nginx高性能内存池源码分析】
本文主要讲解内存池的应用场景、基本使用方法并对内存池源码进行分析和解释,读完对您理解内存池一定会有所帮助🚀原创 2023-03-30 11:29:05 · 529 阅读 · 6 评论 -
高性能内存池设计【内存池框架】
本片博客主要是讲解高性能内存池Nginx的内存池设计框架部分,对内存池的结构以及实现思路进行讲解,相信这篇文章会对您理解内存池有所帮助🚀原创 2023-03-27 08:15:00 · 543 阅读 · 0 评论 -
高性能内存池设计【传统内存管理的弊端以及解决方法】
本篇博客是讲解传统内存管理的一些弊端以及相应的解决方法,相信这篇文章会对您有所帮助原创 2023-03-26 08:00:00 · 511 阅读 · 2 评论 -
深入理解Nginx线程池【内附原理讲解以及源码分析】
本篇博客将从什么是并发编程、为什么要使用线程池、线程池的组成以及线程池的使用这4个方面对Nginx线程池进行刨析,相信耐心看完会对您有所帮助。原创 2022-12-03 16:20:13 · 1093 阅读 · 0 评论 -
Linux线程间的同步和互斥分析【信号量和互斥量】
本文讲解了Linux下的线程同步和互斥,其中包含了理论和相关可执行代码,你真的不来看看吗?原创 2022-11-26 14:58:34 · 808 阅读 · 0 评论 -
线程是什么?线程的相关概念以及基本的使用方法说明【内附可执行源码注释完整】
本文讲解了线程的一些概念以及相关的使用场景以及方法,希望能够对您有些许帮助。原创 2022-11-22 22:30:18 · 3836 阅读 · 0 评论 -
C/C++多进程高并发框架分享【内附可执行源码注释完整】
这篇文章带你了解多进程高并发的原理,并且提供一个通用框架供您参考,真的不来看看吗?原创 2022-11-19 16:42:00 · 2825 阅读 · 2 评论 -
C/C++代码中创建销毁进程【内附可执行源码注释完整】
🚀本文将通过介绍如何使用代码进行进程创建以及销毁以及相关概念,并且提供可执行源码作为参考原创 2022-11-15 13:30:06 · 933 阅读 · 0 评论 -
初识epoll与Reactor设计模式
Reactor模式称为反应堆模式或应答者模式,是基于事件驱动的设计模式,拥有一个或多个并发输入源,有一个服务处理器和多个请求处理器,服务处理器会同步的将输入的请求事件以多路复用的方式分发给相应的请求处理器。空闲的进程或者线程会时刻监视着就绪事件队列,看有没有事件要处理,如果有事件来了,那么进程线程就会进行处理(并会注册新的事件)epoll就是采用的Reactor设计模式,与select和poll进行对比,很大的区别体现在内核部分,epoll的reator设计模式内核采用的是红黑树。原创 2022-10-25 13:00:54 · 1144 阅读 · 0 评论 -
入门工程级CMake看这篇文章就对了
CMake是一个跨平台的构建工具,可以用简单的语句来描述所有平台的安装(编译过程)。能够输出各种各样的makefile或者project文件。CMake并不直接构建出最终的软件,而是产生其他工具的脚本(如makefile),然后再依据这个工具的构建方式使用。CMake是一个比make更高级的编译配置工具,它可以根据不同的平台、不同的编译器,生成相应的makefile或vcproj项目,从而达到跨平台的目的。Android Studio利用CMake生成的是ninja。原创 2022-10-21 06:00:00 · 746 阅读 · 0 评论 -
IO多路复用之POLL【内附可运行代码注释完整】
IO多路复用POLL,内附可运行示例原创 2022-10-18 08:00:00 · 360 阅读 · 0 评论 -
git push failed不支持密码输入的解决办法
git push发生错误,通过产生token进行解决原创 2022-09-29 08:00:00 · 1198 阅读 · 0 评论 -
IO多路复用之SELECT(内附可运行代码)
IO多路复用技术很重要,本文章介绍了SELECT的基本用法以及其例子分析原创 2022-09-27 10:38:24 · 424 阅读 · 0 评论 -
进程间通信之消息队列,你会用了吗?
本文讲述消息队列的基本概念、基本使用方法以及在Linux环境下相关的代码原创 2022-07-13 08:00:00 · 425 阅读 · 4 评论 -
在云服务器中云磁盘如何挂载
腾讯云中轻量级服务器挂载云磁盘具体操作原创 2022-06-25 21:52:42 · 2914 阅读 · 0 评论 -
Windows对Ubuntu的远程控制,你会几种方法?
文章目录xrdpSambaUbuntu安装Samba 服务器Samba服务器配置启动和关闭直接在Windows 下编码如果我们直接用Linux界面进行一些文件操作的话会很不方便,我们可以使用Samba进行远程桌面控制也可以使用xrdp进行远程控制,以下介绍xrdp方法和Samba方法对Ubuntu进行远程控制,设置方法很简单但是用处还是蛮大的。xrdp操作如下# Linux下apt install xrdpsystemctl enable --now xrdpsudo ufw allow fr原创 2022-05-17 14:23:13 · 2431 阅读 · 0 评论 -
Linux操作系统coredump的配置以及基本使用方法
文章目录coredump调试coredump是什么?coredump前期设置什么情况下会导致程序异常退出如何调试具体例子coredump调试coredump是什么?程序异常退出时,会产生一个core文件,该文件记录了程序运行时的内存,寄存器状态,堆栈指针,内存管理信息还有各种函数调用堆栈信息等,我们可以理解为是程序工作当前状态存储生成的一个文件,通过工具分析这个文件,我们可以定位到程序异常退出的时候对应的堆栈调用等信息,找出问题所在并进行及时解决。coredump前期设置设置core文原创 2022-04-01 09:15:00 · 1548 阅读 · 2 评论 -
内存检测工具Valgrind你还没用过吗?
这篇文章可能会有一些晦涩,前面是用于介绍理论上的使用方法,但是后面会用一个完整的例子和流程来解释Valgrind的用法,希望这篇文章能够对您有所帮助,谢谢😀文章目录内存检测Valgrind什么是ValgrindValgrind 安装Memcheck检测范围Memcheck 检查步骤及注意事项结果分析具体例子内存检测Valgrind什么是Valgrind当我们在进行一个比较大的工程项目时,代码量上去以后对于一些内存的处理可能会出现一些问题,比如取到空指针指向的值、动态分配的内存没有释放、数组越界访.原创 2022-04-01 09:00:00 · 1547 阅读 · 0 评论 -
Linux项目日志实现之重定向
文章目录stdout和stderr的缓存问题重定向的使用stdout和stderr的缓存问题在通常情况下,Linux/UNIX每个程序在开始运行的时刻,都会自动给打开3个已经打开的stream. 分别用来输入,输出,打印诊断和错误信息。通常他们会被连接到用户终端。这3个句柄的类型为指向FILE的指针。可以被fprintf、fread等函数使用,在Linux操作系统下一切皆文件,他们在程序开始启动后,stdin, stdout, and stderr 的文件描述符是 0, 1和2,其它的文件描述符则排在其原创 2022-03-31 14:45:18 · 5615 阅读 · 0 评论 -
Linux文件锁(Filelock)是什么,怎么用?
文件锁为了解决并发对文件IO操作的影响,这样就出现了文件锁,多个进程如果在没有设置文件锁的情况下是可以访问同一个文件的,比如我一个进程已经开始写这个文件了,那么另外一个进程也可以写,那这样不就乱套了吗,文件锁就像是我们家的门锁一样,当一个人进入了家门口以后那么就会对门锁进行一些设置 用法:man 2 fcntl 包含头文件:#include <unistd.h> #include <fcntl.h> 函数定义:int fcntl(原创 2022-03-29 08:30:00 · 3501 阅读 · 1 评论 -
Linux操作系统gdb下载以及基本使用方法
gdb调试是个啥gdb是GNU 发布的一个强大的程序调试工具,也是Linux 程序员不可或缺的一大利器。下面就来正式介绍gdb的下载和使用方法了👇~~gdb启动使用gdb的前提: gcc -g hello.c -o hello //生成.o文件的编译过程都得加个‘-g’下面是我写的一个Makefile例子(如果不了解Makefile是怎么回事的同学可以看看Makefile的用法链接)启动gdb: gdb hello //hello是我们编译链接完成后的可执行文件然后she原创 2022-03-15 08:00:00 · 8604 阅读 · 0 评论 -
shell脚本编程Makefile的编写,让你的代码编译链接更加快速
文章目录为什么要使用MakefileMakefile的编写Make 工作原理Makefile的规则:为什么要使用Makefile简单来说,当我们写一个稍微大一些项目的时候,如果我们要执行一个程序那得编译很多个文件并且还得链接起来,如果没有Makefile我们就得一个一个编译一个一个链接那真的是又臭又长(而且还会经常写错),而Makefile就能够很好的解决这个问题,所以说掌握好Makefile的编写是很有必要的Makefile的编写程序的编译和链接使用C、C++编写可执行程序,首先要把源原创 2022-03-07 23:41:59 · 2433 阅读 · 0 评论 -
一篇文章带你理解套接字Socket的各个接口
出错处理函数系统函数的调用不能保证每一次都成功,有时候系统也会出现一些小问题从而导致函数调用的失败,对于程序员来说一定要懂得去把控住要懂得防御性编程进行出错处理:一方面保证程序的逻辑正常,另一方面可以迅速得到故障信息要不然到时候自己也不知道哪错了,所以我们应该要懂得运用出错处理函数。...原创 2020-08-18 18:20:19 · 851 阅读 · 0 评论 -
Linux系统调用及性能提升
文章目录相关操作系统概念什么是系统调用为什么要使用系统调用实现系统调用实现系统调用的方法Glibc 实现操作系统提供的系统服务,即系统调用的封装。Syscall 直接调用glic和Syscall的比较如何高效执行Linux系统调用相关操作系统概念操作系统:是用户和系统交互的操作的接口,它是用于管理计算机硬件和软件资源的软件。操作系统内核:操作系统的核心,负责管理进程、内存、设备驱动、文件和网络系统,一套完整的操作系统是由外壳和内核组成的。Linux操作系统 :基于Linux 内核的操作系统。通常由原创 2020-08-06 15:47:40 · 735 阅读 · 0 评论 -
通过一个简单的demo来理解网络通信和Socket
网络通信与socket对于计算机世界来说,每个方法和数据结构都是我们现实生活的一个投影和体现,希望我对于网络通信和socket的一些理解能够给你带来帮助。Socket通信的三要素:通信的目的地址使用的端口号http 80 smtp 25使用的传输层协议(如TCP、UDP)例子:我们如果去寄信,信件写上地址和你准备寄给谁并把它放到邮筒中,对方也有个小邮筒用来接收别人发给它的信件,如果对方的地址是你填的地址的话信件就收下,那样对方才能够接收得到(对方也就知道了你的地址,也可以给原创 2020-07-31 09:56:03 · 468 阅读 · 1 评论 -
Linux极速入门命令
文件操作常用命令①pwd命令作用:显示当前目录用法:pwd②cd命令作用:改变目录位置用法: cd . . .[OPTION] . . .[FILE]. . . cd 目录路径 - 进入指定的目录中去 cd … &nb原创 2020-05-19 13:54:12 · 376 阅读 · 0 评论