排序:
默认
按更新时间
按访问量

剖析STL空间配置器

为什么需要空间配置器呢? 原因一:当系统频繁的申请释放内存时,会造成内存碎片问题,导致明明剩余的总内存够需要分配的内存,但是由于这样内存不是连续的,而是一块块的,每一小块又达不到需要分配的内存的大小,所以造成内存碎片问题(外碎片),但是,当我们提前将这些内存按照不同大小组织起来,需要分配时,根据...

2018-04-11 20:33:24

阅读数:48

评论数:0

基于Huffman编码的文件压缩

原理剖析: 我们的Huffman文件压缩,是基于Huffman编码实现的,思路如下: 首先,获取原文件中每个字节的值(unsigned char)类型,范围为0-255,并记录每个值出现的次数,以这些值出现的次数为数据,利用贪心算法构建Huffman编码,然后,将对应的字节以其对应的Huffm...

2018-04-11 20:23:08

阅读数:36

评论数:0

Linux网络基础-高级IO之epoll

编写epoll服务器,并总结epoll优缺点,重点优点 总结select/poll/epoll各自的优点缺点,整理成表格 总结epoll LT与ET模式,调研两者应用特点。 LT/ET模式: select/poll/epoll优缺点总结: epoll()...

2018-07-19 03:00:05

阅读数:54

评论数:0

Linux网络基础-高级IO之poll

编写poll服务器,并总结select优缺点,重点缺点 编写epoll服务器,并总结epoll优缺点,重点优点 总结select/poll/epoll各自的优点缺点,整理成表格 总结epoll LT与ET模式,调研两者应用特点。 poll服务器: 优...

2018-07-17 19:15:19

阅读数:44

评论数:0

Linux网络基础-高级IO之select

深度阅读本文档,总结5种IO模型 深度理解在不同的背景下同步异步的区别 编写select服务器,并总结select优缺点,重点缺点 编写poll服务器,并总结select优缺点,重点缺点 编写epoll服务器,并总结epoll优缺点,重点优点 总结sele...

2018-07-17 04:10:39

阅读数:57

评论数:0

Linux网络基础-传输层

////////////>* 深度阅读本文档,理解各层作用,理解各层常见协议 应用层 /////////////>* 编程实现基本的http服务器代码 /////////////&...

2018-07-14 21:28:25

阅读数:45

评论数:0

Linux网络基础-应用层

深度阅读本文档,理解各层作用,理解各层常见协议 编程实现基本的http服务器代码 总结常见应用层对应端口号(http(80) https(443)) 总结网络常用命令,总结TIME_WAIT状态 总结TCP可靠性保证都有哪些机制,各自保证可靠性当中的那些方面...

2018-07-12 19:55:44

阅读数:130

评论数:0

Linux 网络编程socket套接字

socket编程接口: #include <sys/types.h> ...

2018-07-04 17:53:00

阅读数:49

评论数:0

Linux进程关系&守护进程

进程组: 每个进程除了是一个单独的进程外,它还属于一个进程组,进程组是一个或多个进程的集合。每个进程除了有一个进程ID外还有一个进程组ID,用于标记该进程属于那个进程组,每个进程组都可以有一个组长进程,组长进程的标识是:其进程ID等于进程组ID,组长进程可以创建一个进程组、创建进程组中的进程、退...

2018-06-14 03:06:46

阅读数:49

评论数:0

Linux线程

进程与线程的区别和联系: 什么是线程? 在程序中的一个执行流就叫做线程。一个进程至少包含一个线程。 进程与线程的区别: 进程是资源分配的最小单位 线程是程序执行的最小单位 进程与线程的联系: 线程间共享的进程数据:同一地址空间(代码段、数据段等)、文件描述符表、每种信号的处理方式...

2018-05-16 20:16:37

阅读数:41

评论数:0

Linux信号

信号的基本概念: 信号是操作系统中进程间通讯的一种有限制的方式。它是一种异步的通知机制,用来提醒进程一个事件已经发生,当一个信号发送给一个进程,操作系统中断了进程正常的控制流程,此时,任何非原子操作都将被中断,如果进程定义了信号的处理函数,那么它将被执行,否则就执行默认的处理函数。 注:在Li...

2018-05-05 21:48:11

阅读数:59

评论数:0

Linux进程间通讯(信号量)

信号量 信号量主要用于进程间的同步与互斥,类似于计数器,用于标记资源个数。 S > 0:S表示可用资源个数。 S == 0:表示无可用资源,无等待进程。 S < 0:|S|表示等待队列中,等待资源进程资源个数。 进程互斥: 由于进程间要求资源...

2018-05-02 21:41:11

阅读数:41

评论数:0

Linux进程间通讯(消息队列&共享内存)

消息队列: 消息队列提供了一种从一个进程向另外一个进程发送“一块”数据的方法。 每块数据块都被认为是有一个类型,接收者进程接收的数据块可以有不同的类型。 消息队列的每块消息有最大长度的上限(MSGMAX),每个消息队列的总字节数也是有上限的(MSGMNB),系统上消息队列的总数也是有上限的(M...

2018-04-30 11:11:03

阅读数:48

评论数:1

Linux进程间通讯(匿名管道&命名管道)

匿名管道: 什么是管道? 管道是unix中最古老的进程间通讯方式。 具有亲缘关系的两个进程间连接的数据流称为一个管道。 注:yum进程与grep进程同为shell进程创建,所以为兄弟进程。 #include <unistd.h> in...

2018-04-18 22:59:02

阅读数:48

评论数:0

Linux文件相关系统调用接口、fd文件描述符与FILE结构体对比

文件相关系统调用接口: open(): #includ e <sys/types.h> #include <sys/stat.h> #include <fcntl.h&am...

2018-04-16 01:25:23

阅读数:63

评论数:0

支持输入、输出、追加重定向的shell

重定向的原理是关闭相应的标准流文件描述符(stdin(0)、stdout(1)、stderr(2)),打开要重定向的文件并得到文件描述符,因为Linux中文件描述符的分配是从0开始查找第一个没有使用的描述符进行分配,所以打开的文件描述符便会代替标准流文件的描述符达到重定向的作用。 代码如下: ...

2018-04-15 21:05:26

阅读数:257

评论数:1

popen/system函数与fork函数的区别

popen函数: #include <stdio.h> FILE *popen(const char *command, const char *type); int pclose(FILE *stream); 函数说明: popen(...

2018-04-10 17:53:37

阅读数:32

评论数:0

模拟实现进程创建函数process_create

利用fork()、wait()等函数模拟实现进程创建函数process_create()函数 #include<stdio.h> #include<unistd.h> #include&l...

2018-04-10 10:54:14

阅读数:110

评论数:0

简单shell的实现

#include<stdio.h> #include<string.h> #include<unistd.h> void Run(char *buf,char *...

2018-03-24 14:51:28

阅读数:59

评论数:0

Linux进程创建、等待、终止以及vfork&return详解

进程控制: 进程创建: 利用fork()创建一个子进程: #include<stdio.h> #include<unistd.h> int main(){ pid_t id = fork()...

2018-03-15 17:52:04

阅读数:76

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭