自定义博客皮肤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 139

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

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

2019-10-30 19:50:09 137

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

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

2019-10-30 19:44:33 140

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

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

2019-10-30 19:43:21 134

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

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

2019-10-28 21:14:32 112

原创 Unix-第三章文件操作

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

2019-10-26 16:05:07 130

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

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

2019-10-23 15:26:10 195

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

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

2019-10-22 10:45:52 106

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

时间复杂度 最坏时间复杂度 空间复杂度 稳定性计数排序 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 144

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

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

2019-10-22 10:19:22 91

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

时间复杂度 最坏时间复杂度 空间复杂度 稳定性冒泡 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 227

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

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 351

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

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 86

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

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 104

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

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 109

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

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 208

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

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

2019-10-22 09:26:48 143

原创 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 141

原创 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 86

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

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

2019-10-22 08:57:59 292

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

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

2019-10-21 19:55:53 137

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

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

2019-10-21 19:40:33 100

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

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

2019-10-21 19:30:15 109

原创 C语言-第七章指针

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

2019-10-21 17:13:49 183

原创 C语言-第六章函数

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

2019-10-21 16:34:55 284

原创 C语言-第五章数组

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

2019-10-21 16:31:37 119

原创 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 251

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

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

2019-10-21 16:12:29 389

原创 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 155

原创 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 82

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

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

2019-08-19 19:35:56 370

Unix环境编程.xmind

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

2019-09-02

ten_sort.c

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

2019-08-19

C语言.xmind

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

2019-08-19

空空如也

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

TA关注的人

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