自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 资源 (3)
  • 收藏
  • 关注

原创 Unix环境编程-第八章多路复用I/O

线程同步: 三种解决思路: 多路复用IO 解决多线程所带来的效率问题 1.select: int select(int nfds(需要关心的文件描述符最大值+1), fd_set *readfds(准备读的文件描述符集合), fd_set *writefds(准备写的文件描述符集合), fd_set *exceptfds(有异常的文件描述符集合), struct t...

2019-10-30 19:52:16 206

原创 Unix环境编程-第七章线程和线程同步

线程和进程的区别 进程:拥有4G独立的虚拟内存 复制数据空间 共享代码区 线程:拥有独立的栈区 同一个进程中的线程共享代码区、数据区、堆区 轻量级的 并发性 一个系统最大的进程数 远远小于 线程的最大数量 线程的函数: 如果函数出错 不会 修改全局的errno 也意味着不能使用perror printf("%m") 都是通过返回值 错误码通过函数返回 统一编程接口: 函数名相...

2019-10-30 19:50:09 196

原创 Unix环境编程-第六章网络通信

网络通信 ISO/OSI网络七层模型 TCP/IP模型 TCP:数据传输控制协议 数据流 连接 可靠 数据完整且有序 比UDP要低 三次握手 四次分手 UDP:用户数据报协议 数据报 不连接 不可靠 不保证数据的完整和有序 传输效率要高 编程模型 TCP server 1. socket(AF_INET,SOCK_STREAM/SOCK_DGRAM,0) 2. struct ...

2019-10-30 19:44:33 205

原创 Unix环境编程-第五章进程间通信

进程通信: 多个进程之间进行数据交换 1.简单进程间通信:命令行参数.环境变量.信号.文件. 2.传统进程间通信:管道. 3.XSI进程间通信:共享内存.消息队列.信号量. 4.网络进程间通信:套接字. 信号集:信号的集合 信号量:进程间通信的方式 限制进程多共享资源的访问 信号量集:线程同步的一种方式 半双工管道 mkfifo 创建管道文件 有名管道和无名管道 IPC标识 1.创建IPC键值 ...

2019-10-30 19:43:21 188

原创 Unix环境编程-第四章进程

进程 程序:存储在磁盘中的静态的机器指令 静态的 程序运行之后:操作系统会把程序的指令及数据加载到内存中,形成4G虚拟内存映射 进程:程序运行之后动态的内存分布 动态的 正在运行的程序 同一个程序 可以同时运行多次 多进程:重量级 独立4G的虚拟内存空间 多线程:轻量级 共享进程的内存空间 会独立的栈空间 进程 启动很多进程 进程号只是一个数字 操作系统里面 延迟...

2019-10-28 21:14:32 163

原创 Unix-第三章文件操作

文件系统 在linux下面 一切设备皆文件 open/read/write/ioctl/close C语言标准库里 操作文件的函数 fopen fread fwrite fclose ftell fseek fprintf fscanf fputs fgets … FILE * 文件指针 结构体指针 open 打开 或者 创建并打开文件 create ...

2019-10-26 16:05:07 186

原创 Unix环境编程-第二章内存管理

内存管理 虚拟内存 1个进程有4G独立的虚拟内存 0-3G 用户内存 3-4G 内核内存 代码区->数据段->BSS段->堆区->堆栈缓冲区(共享库、共享内存)->栈区->命令行参数 环境表->内核区 特点以及存储的数据 环境表: 环境变量=环境变量值 形式的字符串 PATH=/home/ubuntu 以字符串形式存在的环境变量的首地址存储在一个 指...

2019-10-23 15:26:10 245

原创 Unix环境编程-第一章动态库,静态库

静态库 把目标文件归档 1.编写源代码 add.h add.c sub.h sub.c 2.编译成目标文件 gcc -c add.c ==> add.o gcc -c sub.c ==> sub.o 3.创建静态库 ar -r liboper.a add.o sub.o ==> 静态库的名字是 oper 在任何一个地方: 如果需要使用到add...

2019-10-22 10:45:52 167

原创 数据结构与算法-第九章计数,基数

时间复杂度 最坏时间复杂度 空间复杂度 稳定性 计数排序 n+k n+k n+k 稳定 基数排序 n*m n*m m 稳定 计数排序(桶排序) void countSort(int arr[],size_t len){ int max = arr[0]; int min = a...

2019-10-22 10:26:08 209

原创 数据结构与算法-第八章-堆,希尔,快速,归并

时间复杂度 最坏时间复杂度 空间复杂度 稳定性 归并排序 nlogn nlogn n 稳定 快速排序 nlogn n^2 logn 不稳定 堆排序 nlogn nlogn 1 不稳定 希尔排序 nlogn n*s 1...

2019-10-22 10:19:22 141

原创 数据结构与算法-第七章冒泡,选择,鸡尾酒,插入

时间复杂度 最坏时间复杂度 空间复杂度 稳定性 冒泡 n^2 n^2 1 稳定 选择 n^2 n^2 1 不稳定 鸡尾酒 n^2 n^2 1 不稳定 直接插入 n^2 n^2 1 稳定 折半插入 n^2 n...

2019-10-22 10:08:48 307

原创 数据结构与算法-第六章树

Btree.h #ifndef _BTREE_H__ #define _BTREE_H__ #include <stdio.h> #include <stdlib.h> #include <stdbool.h> typedef int T; typedef struct TNode{ T data; struct TNode *left; struct...

2019-10-22 09:37:36 421

原创 数据结构与算法-第五章双向队列

Dequeuer.h #ifndef _DEQUE_H__ #define _DEQUE_H__ #include <stdio.h> #include <stdlib.h> #include <stdbool.h> typedef int T; typedef struct Deque{ T *m_vect; //存储元素的内存空间 size_...

2019-10-22 09:35:28 132

原创 数据结构与算法-第四章队列

Queue.h #ifndef _QUEUE_H__ #define _QUEUE_H__ #include <stdio.h> #include <stdlib.h> #include <stdbool.h> typedef int T; typedef struct Queue{ T *m_vect; //存储数据的内存空间 size_t cap...

2019-10-22 09:33:31 161

原创 数据结构与算法-第三章双向链表

Dlink.h #ifndef _DLINK_H__ #define _DLINK_H__ #include <stdio.h> #include <stdbool.h> #include <stdlib.h> typedef int T; typedef struct DNode{ T data; struct DNode *prev; struct...

2019-10-22 09:31:18 155

原创 数据结构与算法-第二章链表

Slink.h #ifndef _SLINK_H__ #define _SLINK_H__ #include <stdio.h> #include <stdlib.h> #include <stdbool.h> typedef int T; //单向链表的节点 typedef struct SNode{ T data; //节点元素 ...

2019-10-22 09:29:45 282

原创 数据结构与算法-第一章堆栈

Stack.h #ifndef _STACK_H__ #define _STACK_H__ #include <stdio.h> #include <stdlib.h> #include <stdbool.h> typedef int T; //#define N 10 typedef struct Stack{ T* m_vect; //存储元素内存空...

2019-10-22 09:26:48 192

原创 C语言-第十三章文件操作

文件操作 程序启动时 从文件中加载数据到程序中 程序退出前 把程序中处理的数据保存到文件 C语言提供用于文件操作的函数: FILE *fopen(const char *path,const char *mode); path: 文件路径 包含文件名 绝对路径 "/home/ubuntu/a.txt" 相对路径 "a.txt" mode: 打开方式 "r" ...

2019-10-22 09:20:45 191

原创 C语言-第十二章高级指针

const与指针: const char *p; const修饰 *p *p 只读 //*p = ‘X’;错误的 p的值可以修改 p可以指向其它内存 p = “HELLO”; char const *p; const修饰 *p *p只读 p可以改变 char * const p; const修饰p p只读 *p 可以改变 const char * ...

2019-10-22 09:04:32 133

原创 C语言-第十一章结构体

数组: 一组同类型数据的集合 结构体:一组类型不定的数据的集合 数组: 直接声明变量 int arr[10]; 结构体:先声明定义结构体类型 struct 结构体名字{ 成员类型 成员名字; … }; 有了结构体类型之后 可以声明变量 struct 结构体名字 变量名; struct Stu s; 数组: 数组通过下标的方式进行访问数组元素 数名名[下标] 结构体:每一个结构体变量...

2019-10-22 08:57:59 393

原创 C语言-第十章文件编译

1.预处理 -E 进行预处理工作 工作内容: 进行预处理(预处理指令),进行宏替换和头文件导入或者条件编译等 去掉注释内容 不会自动生成文件 -o 可以指定生成的目标文件 .i 2.编译 -S 检查语法错误 生成汇编程序 工作内容: 检查源代码或者经过预处理之后代码的语法错误 生成汇编程序 .s 3.汇编 其实是用as命...

2019-10-21 19:55:53 197

原创 C语言-第九章动态内存

动态内存(堆区) 手动申请 手动释放 什么时候使用动态内存: 1.存储比较大的数据量时 2.内存大小可以变化时 #include <stdlib.h> void *malloc(size_t size); 申请size个字节的动态内存 返回申请到的动态内存的起始地址 如果申请失败返回 NULL void *calloc(size_t nmemb,size_t size); ...

2019-10-21 19:40:33 171

原创 C语言-第八章字符串

C语言中字符串的三种形式 (1) 字面值字符串 存储在代码区 代码区不能修改 在程序中用双引号("")引起来的内容 a.字面值字符串里面的字符不可修改 b.相同字面值字符串在内存中只保留一份 (2) 字符数组的形式 存储在栈区 栈区可以修改 注意: a.保留足够的空间用于存储'\0' b.字符数组可以直接用 字符串字面值 直接初始化 char s1[...

2019-10-21 19:30:15 163

原创 C语言-第七章指针

指针 内存地址: 声明变量 这个变量其实代表一块内存区域 操作变量 其实操作的是这片内存区域里存储的值 对于变量可以进行取址(&)运算,取得这个变量所代表的内存地址 对于取址运算符(&) 操作数只有一个,且只能是左值 %p 可以输出一个地址 地址:一个编号 一个十六进制的整数 内存地址即指针 指针变量 可以 保存 内存地址 4G虚拟内存: 参考一张图 https://b...

2019-10-21 17:13:49 250

原创 C语言-第六章函数

定义:是一段满足一定形式且具有特定功能的代码 语法形式: 返回值类型 函数名(参数列表){ //函数体 } 函数的意义 (1) 函数可以重复调用 函数的代码不需要重复实现 (2) 提升开发效率 (3) 有利于结构化编程 实现项目的基础 (4) 对于别人提供的函数 不需要知道实现原理和过程 只需要知道调用即可 自定义函数: 返回值类型 函数名(形参列表){ //函数体 } 返回值类型: 调用一个...

2019-10-21 16:34:55 370

原创 C语言-第五章数组

一次性声明多个同类型的变量 (1)声明 定义 数组 数据类型 数组名[数组长度]; 声明定义一个数组,且相当于声明了 数组长度 个同类型变量 int scores[10]; scores[0] scores[1] scores[2] ... scores[9] 这10个int类型变量 通过数组声明的变量同名,为了区分这些变量需要通过下标来访问这些变量 访问数组元素: 数组名[下标]; 下标:...

2019-10-21 16:31:37 170

原创 C语言-第四章三种语句

分支选择语句 if(){ } if(){ }else{ } if(){ }else if(){ }else if(){ } if(){ }else if(){ }... .else{ } 注意: (i) else if可以有多个(>=0) (ii) else 最多能有一个(0或者1) (iii) if 和 else if里面的条件可以重复 (iv) if() 省略大括号 后...

2019-10-21 16:26:07 315

原创 C语言-第三章基本数据类型和关键字

基本数据类型 整数类型: 字节 短整型 short 2 整数 int 4 长整型 long 4 重要:不同的操作系统不同 4/8 浮点类型: 单精度浮点类型 float 4 双精度浮点类型 double 8 字符类型: ch...

2019-10-21 16:12:29 486

原创 C语言-第二章vi编辑器的使用

三种模式 命令(Command)模式 底行(Last-line)模式 编辑(Entry)模式 用vi打开一个文件之后 进入 命令模式: 不能编辑文档,只能识别命令 命令模式 i,a,o,I,A,O 进入到编辑模式 i : 在光标处插入 I :在光标所在行首插入 a :在光标后面插入 A : 在光标所在行尾插入 o : 在光标下一行插入新行 O : 在光标处插入新行 编辑模式下进行文档编辑...

2019-10-21 16:06:42 227

原创 C语言-第一章linux基础命令

1. ls list 显示路径下的文件信息 -a 选项 显示隐藏文件(unix下的隐藏文件以.开头) -l 详细显示文件信息 -t 按时间进行排序 按时间倒序(新建的在前) -r 按原来的逆序显示 -S 按文件大小 从大到小显示 drwxr-xr-x 4 ubuntu ubuntu 4096 6月 10 2017 build 文件类型属性 - 普通文件 ...

2019-10-21 15:58:49 122

原创 数据结构与算法-总结

day1: 数据结构算法: 线性:数组 链表 双向链表 堆栈 队列 双向队列等 非线性:二叉树 图 等 算法: 查找 排序 数据结构:数据元素一级数据元素存储之间的关系结构 day2: 数组: (1).一片连续的内存空间 不能是断开的 (2).因为是连续的内存空间 才可以使用下标来访问 所以访问效率高 (3).在数据前面插入和删除的效率都比较低(需要移动数据) 链表: 当前元素保...

2019-08-19 19:35:56 466

C语言.xmind

简述了标准C语音的主要内容,个人归纳,只供参考,使用了Xmind8进行编辑,查看时请使用Xmind进行查看

2019-08-19

Unix环境编程.xmind

有关于unix环境编程的知识,有开发环境,内存管理,文件系统,进程管理,信号处理,进程间通信,网络通信,线程同步和线程管理.

2019-09-02

ten_sort.c

有关于链接该资源的文章中的算法代码,可以大概了解基础的排序算法,查找算法只有折半查找。

2019-08-19

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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