logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

一篇文章吃透基础IO

缓冲区是内存空间的一部分,在内存空间中预留了一部分存储空间用来缓冲输入或输出,这部分预留的空间就叫做缓冲区。用户级缓冲区:在应用程序自己的用户空间,是程序层面的缓存。作用是减少频繁发起系统调用,攒够一批数据再交给内核。文件内核缓冲区:在操作系统内核空间,是内核专门给文件 IO 用的缓存,夹在应用和物理磁盘中间。打个比方:当我们上网网购,东西到了,快递员将快递送到了。但是我们没有立刻去拿,我们的快递

#服务器#linux#数据库
自定义shell

提示生成→ 读取输入 →解析令牌→判断内建/外部→ 执行。内建命令修改 Shell 自身状态,不 fork;外部命令需要fork+exec,并妥善回收子进程。环境变量表是进程间信息传递的重要途径。重定向的本质是操控文件描述符表,且在exec之前完成。动手实现一个 Shell 是理解操作系统进程管理、文件描述符以及 Unix 哲学的最佳途径。希望你也能基于这份原型,修复其中的 bug,并添加自己梦寐

#linux#算法
about进程控制

wait()简单但不灵活,waitpid()可指定子进程、控制等待模式,二者均需通过status宏解析子进程状态,合理选择阻塞/非阻塞模式,可避免僵尸进程并提升程序效率。

#网络#linux#c++ +1
进程初识(2)

环境变量一般是指在操作系统中用来指定操作系统运行环境的一些参数(被bash用,也就是被用户用)如:我们在编写C++代码时,在链接的时候,从来不知道我们的所链接的静态库在哪里,但是照样可以链接成功,生成可执行程序,原因就是有相关环境变量帮助编译器查找。环境变量通常具有某些特殊用途,还有在系统中通常具有全局特性。

#linux#职场和发展#算法 +3
Linux中的开发工具

汇编语言 -> 编译器产生(汇编语言的编译器是用二进制写的,二进制版汇编编译器,编译汇编语言,再用汇编写一个汇编编译器)动态库内部实现的方法 和 我们自己的程序,会使用库中的方法连接起来。让我们自己的程序能在库中找到方法形成可执行程序。:(.o文件叫做可重定位目标文件,已经是二进制的了)-C代表程序开始翻译,把汇编语言翻译成二进制就停下来。代表从现在开始进行程序翻译,在预处理(头文件展开,宏替换)

#linux#运维#服务器 +3
函数栈帧的创建和销毁

寄存器主要用途EAX累加器,常用于存储函数返回值EBX基址寄存器,常用于数据段指针ECX计数器,常用于循环计数EDX数据寄存器,常用于I/O操作EBP基址指针寄存器,指向当前栈帧的底部(高地址)ESP栈指针寄存器,指向当前栈帧的顶部(低地址)关键理解:EBP和ESP这两个寄存器中存放的是地址,它们共同维护当前正在执行的函数的栈帧。EBP指向栈帧的高地址(栈底),ESP指向栈帧的低地址(栈顶)。每一

#windows#数据结构#c++ +2
C++ 的容器适配器——从stack/queue看

适配器的作用是“将一个类的接口转换为客户希望的另一个接口”。stack:只允许在一端插入/删除;queue:允许在一端入、一端出(FIFO)。适配器并不自己管理内存,而是复用底层容器(dequevectorlist等)。理解容器适配器的核心在于“接口的封装”和“底层容器的选择”。实现时应注意模板默认参数写法、成员函数的 const/ noexcept 语义与空容器的边界条件。通过上述改进可以让自实

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