logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

【linux学习】深入理解linux文件I/O,从C标准库到内核态

本文深入解析了Linux文件I/O机制,从C标准库I/O与系统调用的关系入手,揭示了文件描述符的本质是进程文件描述符表的数组下标。通过分析重定向原理,指出其本质是修改内核文件指针指向。文章还探讨了缓冲区的特性及其在fork时的表现差异,解释了"一切皆文件"的设计哲学通过VFS层实现操作系统层面的多态。最后介绍了磁盘物理结构到文件系统逻辑结构的抽象过程,全面阐述了Linux文件I

文章图片
#linux#学习#操作系统
【Linux学习】Linux中进程终止和进程等待

本文系统介绍了Linux进程退出的相关机制,主要内容包括:1.进程退出的三种场景(正常终止、异常终止)和四种方式(main返回、exit()、_exit()、信号终止);2.exit()与_exit()的核心区别在于是否执行清理工作和刷新缓冲区;3.进程等待的必要性(避免僵尸进程)及两种实现方式(阻塞式wait和非阻塞式waitpid);4.status状态值的解析方法,包括获取退出码和终止信号;

文章图片
#linux#学习#操作系统
【linux学习】linux下进程状态和环境变量的解析

本文介绍了进程状态和环境变量的核心概念。进程状态本质上是进程在不同队列中的位置:运行队列(R状态)、等待队列(阻塞状态)和挂起状态。Linux定义了7种进程状态,包括运行(R)、睡眠(S)、磁盘睡眠(D)等。重点讲解了僵尸进程(子进程退出但父进程未回收)和孤儿进程(父进程先退出)的形成机制及解决方案。环境变量部分阐述了PATH、HOME等常见变量的作用,以及通过命令行和代码获取/设置环境变量的方法

文章图片
#linux#学习#运维
【linux学习】进程的概念和在linux系统下的基本实现情况01

本文介绍了计算机系统的核心概念:1. 冯诺依曼体系结构五大部件及其交互规则,强调CPU只与内存直接交互;2. 操作系统的本质是资源管理者,采用"先描述再组织"的方式管理进程等对象;3. 进程与程序的区别,以及PCB作为进程"身份证"的重要作用;4. 进程标识符(PID/PPID)的功能和使用场景;5. fork()创建子进程的原理和实现方式;6. 计算机层次

文章图片
#linux#学习#网络
【linux学习】linux工具篇(上)

今天来学习一些linux的基本工具,vim,编译器gcc,g++等,下面进行介绍。一、Linux软件包管理器yum什么是软件包在Linux下安装软件,一个通常的办法是下载到程序的源代码,并进行编译,得到可执行程序.但是这样太麻烦了,于是有些人把一些常用的软件提前编译好,做成软件包(可以理解成windows上的安装程序)放在一个服务器上,通过包管理器可以很方便的获取到这个编译好的软件包,直接进行安装

#学习#linux
【C++学习】C++中的智能指针

本文介绍了C++智能指针的原理与应用。首先分析了内存泄漏的危害及分类,指出智能指针是预防内存泄漏的有效手段。重点讲解了三种智能指针:auto_ptr(管理权转移)、unique_ptr(防拷贝)和shared_ptr(引用计数),并通过代码示例说明其实现原理。特别讨论了shared_ptr的线程安全问题和循环引用问题,提出使用weak_ptr的解决方案。最后介绍了RAII思想的扩展应用,如守卫锁的

文章图片
#学习
【C++的学习】C++的异常处理

实际使用中很多公司都会自定义自己的异常体系进行规范的异常管理,因为一个项目中如果大家随意抛异常,那么外层的调用者基本就没办法玩了,所以实际中都会定义一套继承的规范体系。这样大家抛出的都是继承的派生类对象,捕获一个基类就可以了。//服务器开发中通常使用的异常继承体系protected:int _id;// ...{};{};{};int main()try{//抛出对象都是派生类对象catch (c

#学习#c++
【C++的学习】C++的异常处理

实际使用中很多公司都会自定义自己的异常体系进行规范的异常管理,因为一个项目中如果大家随意抛异常,那么外层的调用者基本就没办法玩了,所以实际中都会定义一套继承的规范体系。这样大家抛出的都是继承的派生类对象,捕获一个基类就可以了。//服务器开发中通常使用的异常继承体系protected:int _id;// ...{};{};{};int main()try{//抛出对象都是派生类对象catch (c

#学习#c++
C++中位图和布隆过滤器的一些面试题

在对C++的问题时,位图和布隆过滤器是可以解决实际问题的,当面对很多数据时,我们的服务器内存又很小时,我们需要进行拆分数据进行映射储存,然后进行查找,下面分享一些常见面试题和解决方案。使用位图和布隆过滤器解决实际问题,同时哈希和布隆过滤器的结合使用。

#c++#开发语言
到底了