Chou Bin's Blog

  • 首页

  • 热度榜

  • 标签

  • 分类

  • 归档

  • 关于

  • 搜索

Linux系统编程(七):使用mmap在进程间通信

发表于 2020-02-25 | 分类于 C++ , Linux系统编程 | 评论数: | 热度 ℃
| 本文字数: 33k | 阅读时长 ≈ 54 分钟
本篇文章主要记录了共享内存映射的概念、原理,以及使用mmap()来建立匿名映射、有名映射的方法,以及通过该种方法实现进程间通信。 本篇文章许多概念相关知识参照于本篇文章。 1 共享内存概念共享内存可以说是最有用的进程间通信方式,也是最快的IPC形式, 因为进程可以直接读写内存,而不需要任何数据的拷贝 ...
阅读全文 »

Linux系统编程(六):使用管道在进程间通信

发表于 2020-02-24 | 分类于 C++ , Linux系统编程 | 评论数: | 热度 ℃
| 本文字数: 25k | 阅读时长 ≈ 42 分钟
进程间通信(IPC)的方式有很多种,常用方式有管道pipe、信号signal、映射mmap、本地套接字socket等。这些方式各有优势,其中管道的方式最为简单。本篇文章主要记录管道在进程间通信的使用,在编程实例中还有dup、exec函数族的使用。 1 管道的介绍在使用 Linux 命令的时,经常会借 ...
阅读全文 »

Linux系统编程(五):多进程和fork()

发表于 2020-02-24 | 分类于 C++ , Linux系统编程 | 评论数: | 热度 ℃
| 本文字数: 23k | 阅读时长 ≈ 38 分钟
1 进程和PCB控制块1.1 进程简单描述 进程可以理解为程序的一次执行,也可以理解为程序运行的一个实例。进程是分配资源的基本单位。一个进程由三部分组成:进程控制块PCB(Process Control Block),有关程序段,该程序段对其操作的数据结构集。 每个用户均可同时运行多个程序。为了区 ...
阅读全文 »

Linux系统编程(四):utmp文件和who命令的实现

发表于 2020-02-23 | 分类于 C++ , Linux系统编程 | 评论数: | 热度 ℃
| 本文字数: 32k | 阅读时长 ≈ 53 分钟
本篇文章将会介绍who命令的工作原理,介绍了utmp文件和相应结构体,以及我们可以如何用简单代码将其实现,重点在如何查询和了解相关调用的过程。 当然最后实现的是不带任何参数的版本,否则过于复杂就偏离了学习系统编程的初心,而完全变成了几乎没有实用意义的造轮子。相较于上篇文章中ls -l的实现,who的 ...
阅读全文 »

Linux系统编程(三):stat函数和ls -l命令的实现

发表于 2020-02-23 | 分类于 C++ , Linux系统编程 | 评论数: | 热度 ℃
| 本文字数: 37k | 阅读时长 ≈ 1:02
在该系列的上一篇中,介绍了文件概念和相关的诸多函数,但实例仅有两三个。本篇文章不再专门介绍函数,而是先承接上文,记录一下通过stat()函数来实现ls -l命令。 1 ls -l命令的作用ls -l命令用于查看当前或指定目录下文件的详细信息,使用效果如下 1234567891011121314151 ...
阅读全文 »

Linux 系统编程(二):文件、文件操作函数和相关实例

发表于 2020-02-23 | 分类于 C++ , Linux系统编程 | 评论数: | 热度 ℃
| 本文字数: 61k | 阅读时长 ≈ 1:42
本篇文章主要简单介绍一些 Linux 系统编程中常用的函数,如open()、close()、read()、write()等,然后使用这些函数实现一些常见的 Linux 命令,如more、who、ls等。这样一方面可以练习这些函数的使用,另一方面也能对这些 Linux 命令有更深的理解。 1 man ...
阅读全文 »

Linux 系统编程(一):C/C++程序编译与gdb调试

发表于 2020-02-15 | 分类于 C++ , Linux系统编程 | 评论数: | 热度 ℃
| 本文字数: 65k | 阅读时长 ≈ 1:49
程序编译方法和 gdb 调试技巧,严格来说不应该算作 Linux 系统编程的内容,但 Linux 系统编程主要使用 C 语言进行,离不开程序编译、调试的基础,所以将这部分知识作为第一部分的入门知识。 在此仅仅对我所学到的做一个粗略简单的总结。 1 编译基本过程C/C++ 程序编译主要有四个步骤 预 ...
阅读全文 »

Linux 网络编程(一):socket相关函数与C/S模型实现

发表于 2020-02-13 | 分类于 C++ , 网络编程 | 评论数: | 热度 ℃
| 本文字数: 58k | 阅读时长 ≈ 1:36
1 计算机网络基础1.1 网络分层模型和代表协议常见网络分层模型主要有两种:OSI 七层模型和TCP/IP四层模型。 OSI七层模型是ISO组织提出的,如下 应用层:HTTP,FTP 表示层:ASCII,PICT,TIFF,JPEG 会话层:RPC,SQL,NFS 传输层:TCP,UDP,SPX ...
阅读全文 »

TinySTL实现项目(四):迭代器、反向迭代器及初始化工具

发表于 2020-02-13 | 分类于 C++ , STL | 评论数: | 热度 ℃
| 本文字数: 58k | 阅读时长 ≈ 1:36
在进行vector、list等容器设计之前,我们还需要进行一些准备工作。首先因为容器主要是通过迭代器进行读取和修改操作的,所以我们需要设计迭代器相关工具;另外还需要为部分容器设计反向迭代器,令其支持反向读取操作;最后还需要一组初始化工具,用于容器对象创建时,开辟内存空间后,向其填充元素。 1 迭代器 ...
阅读全文 »

TinySTL实现项目(三):具有SGI特色的两级分配器alloc模板类

发表于 2020-01-07 | 分类于 C++ , STL | 评论数: | 热度 ℃
| 本文字数: 73k | 阅读时长 ≈ 2:01
1 SGI STL 2.91 中空间分配器alloc的设计思想在上篇文章中,我们实现了使用::operator new和::operator delete来分配、释放内存的空间分配器allocator模板类。但在SGI STL 2.91版的源码实现中,其使用的空间分配器并非如此简单,而是以更底层的m ...
阅读全文 »
12<i class="fa fa-angle-right" aria-label="下一页"></i>
Chou Bin

Chou Bin

慢就是快,快就是慢

14 日志
6 分类
8 标签
GitHub E-Mail Weibo
Creative Commons
友情链接
  • Lesy
© 2019 – 2020 Chou Bin | 站点总字数: 147k | 站点阅读时长 ≈ 4:05
你是小破站的第 为访客 历经 次回眸才与你相遇