Linux学习六(进程间通信) Linux学习六 : 进程间通信进程间通信进程间通信(IPC):指多个进程之间传输数据或共享信息的机制,在操作系统中每个进程的地址空间和资源是独立的,为了实现多个进程间的数据交换和协作,需要使用IPC机制。最终结果就是进程能够访问相同的内存区域。 进程间通信的方法: 管道:有名管道,无名管道。 消息队列 信号量 共享内存:内存映射实现,共享内存传递数据。 信号:通过特定信号执行处理情况。 soc 2024-03-26 Linux #C++ #Linux
Linux学习五(进程) Linux学习五 : 进程虚拟地址空间虚拟地址空间:虚拟内存将物理内存抽象为地址空间,每个进程都有各自地址空间。地址空间中页被映射到物理内存,地址空间的页并不需要全部在物理内存中,当使用到一个没有在物理内存的页时,执行页面置换算法,将该页置换到内存中。虚拟地址空间的大小也由操作系统决定,32位的操作系统虚拟地址空间的大小为 2^32 字节,也就是4G,64位的操作系统虚拟地址空间大小为2 ^64 2024-03-26 Linux #C++ #Linux
STL 泛型编程学习 STL 泛型编程学习STL标准库六大部件面向对象编程,将数据和函数放在一个类里面,但是STL将数据(容器)和函数(算法)进行了分离,所以两者在基础观念上就不一样。 容器:各种数据结构。 分配器:进行空间配置与管理。 算法:数据处理方法,如sort,search等。 迭代器:好比一种泛化的指针,作为数据和函数之间的桥梁。stl容器都有自己的专属迭代器。 适配器:三种。 仿函数:类似函数。 序列 2024-03-26 语言基础 #C++ #读书笔记
Linux学习四(GDB) Linux学习四 : GDB在细节上,GDB调试工具更加强大 123456789101112131415161718192021#include <iostream>using std::cout;using std::endl;int func(int n){ int sum = 0; for(int i=0;i<n;i++){ sum+=i; } 2024-03-26 Linux #C++ #Linux
Linux学习三(Makefile) Linux学习三 : Makefilemake是一个命令工具,是一个解释makefile中指令的命令工具 make工具在构造项目的时候需要加载一个叫做makefile的文件,makefile关系到了整个工程的编译规则。一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更 2024-03-26 Linux #C++ #Linux
Linux学习二(GCC/静态库动态库) Linux学习二 : GCC/静态库动态库GCCGCC 是 Linux 下的编译工具集,是 GNU Compiler Collection 的缩写,包含 gcc、g++ 等编译器。代码变成可执行程序的四步:预编译,编译,汇编,链接。假设已经编写好name.c源文件。 预编译:主要进行三件事:展开头文件,宏替换,去掉注释行。得到.i文件。使用到的参数为-Egcc -E name.c -o 2024-03-26 Linux #C++ #Linux
Linux学习一(基础知识与命令) Linux学习一 : 基础知识与命令基础Linux基础知识 Linux是一个基于文件的操作系统。操作系统需要和硬件进行交互, 对应Linux来说这些硬件都是文件,比如: 操作系统会将 硬盘, 鼠标, 键盘, 显示屏等抽象成一个设备文件来进行管理。 Linux内核:Linux有用户态和内核态两个空间,内核空间是linux的主要部分。Linux内核的主要组件有:系统调用接口、进程管理、内存管理、 2024-03-26 Linux #C++ #Linux
C++ Primer学习二 C++ Primer学习二拷贝控制 rule of three:定义了其中一个,剩下的几个都要定义 copy constructor copy assign operator destructor rule of five:定义了其中一个,剩下的几个都要定义 copy constructor copy assign operator destructor move construct 2024-03-26 语言基础 #C++ #读书笔记
C++ Primer学习一 C++ Primer学习一基础 main函数:程序入口。 复合类型 Compound Type: 引用 Reference 绑定一个本地变量 bind to a local variable,是一个已经存在值的引用(一个应用:节约传参过程中的拷贝,节省程序运行时间,当对象很大,并且拷贝很多的时候,使用引用的价值就体现出来了) 不能绑定一个字面常量literal / constan 2024-03-25 语言基础 #C++ #读书笔记
C语言实现简单的WebServer服务器 C语言实现简单的WebServer服务器 基于TCP的套接字通信 这是一个单线程流程,服务器创建用于监听的套接字,绑定本地的ip和端口,listen函数去监听绑定的端口。 如果有客户端进行连接,服务器端就可以和发起连接的客户端建立 2024-03-25 网络编程 #C++ #HTTP