自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 收藏
  • 关注

原创 Linux网络编程:IO多路复用

2.要注意计算nfds,当新增监听句柄时比较容易修改,当减少监听句柄时比较麻烦,如果要精确修改需要遍历或者采用最大堆等数据结构维护这个句柄集,以方便找到第二大的句柄,或者在减少监听句柄时不管nfds。4.select返回-1表示错误,返回0表示超时时间到没有监听到的时间发生,返回正数表示监听到的所有事件数,通常在处理事件时会利用这个返回值来提高效率,避免不必要的事件触发检查。保持全部要监听读的句柄,将它的拷贝传递给select函数,返回可读的句柄集合,类型fdest支持赋值运算符;

2023-12-24 15:50:31 39

原创 Linux软件编程:TCP编程

TCP粘包是指发送方发送若干个数据包到接收方接受时粘成一包,从接受缓冲区看,后一包的数据紧接着前一包数据的尾。backlog:尚未处理的连接请求最大等待个数。addr:存放请求方地址信息空间的首地址。addrlen:请求方地址信息长度。buf:存放接收到的数据空间首地址。buf:存放接收到的数据空间首地址。sockfd:套接字文件描述符。sockfd:套接字文件描述符。sockfd:套接字文件描述符。sockfd:套接字文件描述符。sockfd:套接字文件描述符。addr:对方的IP地址信息。

2023-12-24 12:03:25 831

原创 Linux软件编程:UDP编程

SOCK_STREAM: 流式套接字 TCP。dest_addr:目的地址信息存放空间首地址。flags:发送属性(默认为0)sockfd:套接字文件描述符。addrlen:目的地址的长度。src_addr:存放发送方地址信息空间首地址。buf:发送数据空间首地址。addrlen:接受发送方的地址信息长度。len:发送的字节数。addr:绑定的IP地址和端口号信息。sockfd:套接字文件描述符。sockfd:套接字文件描述符。addrlen:地址的大小。buf:存放数据空间首地址。

2023-12-17 18:03:39 27

原创 Linux软件编程:网络编程

2.传输过程中的序列号和确认号保障数据传输的完整性。网络层 数据的路由(跨局域网通信)会话层 是否建立可控的会话连接。发送方 接收方。数据链路层 局域网内部的通信。子网掩码:区分IP地址的网络位和主机位(IP地址都会搭配子网掩码使用)应用层 要传输的数据。广播号:网络位不变,主机位全为1,则表示主机的IP地址使用。子网掩码对应的二进制形式中是1的部分对应IP地址的网络位。1.三次握手建立连接。3.四次挥手结束连接。

2023-12-17 17:29:41 20 1

原创 Linux软件编程:进程间通信

proj_id:8bits项目ID,不能为0。SIGTSTP :让进程任务挂起 可以从终端输入(ctrl + z)msgp:存放接收到的信息空间的首地址。msgflg:接收消息属性,默认为0。SIGQUIT:让进程任务退出 可以从终端输入(ctrl + \)功能:根据路径和proj_id生成IPC对象名称。msgp:发送消息空间的首地址。msgsz:最大接收消息的大小。msgqid:消息队列的ID。msg sz:发送消息的大小。msqid:消息队列的ID号。

2023-12-10 18:14:31 33 1

原创 Linux软件编程:线程

int pthread_join(pthread_t thread, void *retval(默认NULL))申请:让资源数-1,如果当前资源数为0,申请资源时会阻塞等待,直到资源不为0,才能继续向下执行。2.pthread_mutex_trylock替换pthread_mutex_lock。start_routine:线程要执行的函数的地址。2.线程的创建:线程被创建后独享8M栈区,共享进程中的文本段、数据段和堆区。4.线程的回收:线程执行结束后,回收线程空间,避免产生僵尸线程。

2023-12-10 17:12:07 19 1

原创 Linux软件编程:进程

4.0-4G为虚拟内存空间,进程1运行时映射到进程1的实际物理内存空间、进程2运行时映射到进程2的实际物理内存空间。一个进程的父进程先结束,子进程会成为成为孤儿进程,被init进程收养,子进程再结束,被init进程回收空间。1.让父进程先结束,子进程会成为孤儿进程,此时子进程再结束,会被系统回收进程空间。2.僵尸进程如何产生:子进程结束,父进程没有回收子进程空间,子进程会成为僵尸进程。2.子进程结束时,父进程回收子进程空间,避免产生僵尸进程。3.一个进程有多个子进程时,wait回收先结束的子进程。

2023-12-06 19:18:22 20 1

原创 LINUX软件编程:文件IO

O_NONBLOCK 非阻塞IO。O_EXCL 检测文件是否存在。2.文件IO是系统调用,只有在Linux内核平台中才能使用。O_ASYNC 异步IO。O_RDONLY 只读。O_APPEND 追加。O_CREAT 创建。主要用来操作设备文件以及除普通文件外其余类型的文件。O_RDWR 读写。2.总是取尚未被占用的最小的非负整数。buf:写入数据的存放的空间的首地址。3.标准IO是一种有缓存的IO。

2023-11-28 19:31:38 37

原创 LINUX软件编程:标准IO

0 向后偏移。

2023-11-27 21:28:34 21

原创 单片机学习(STC89C52)

当中央处理器CPU正在处理某件事情的时候外界发生了紧急事件请求,要求CPU暂停当前的工作,转而去处理这个紧急事件,处理完成之后,再回到原来被中断的地方,继续原来的工作,这样的工作被称为中断。即每一端的DTE(数据终端设备)既可作数据源,也可作数据宿,但不能同时作为数据源与数据宿。并行方式传输数据速度快,但占用的通信线多,传输数据的可靠性随距离的增加而下降,只是用于近距离的数据传送。即一端的DTE(数据终端设备)固定为数据源,另一端的DTE(数据终端设备)固定为数据宿。按数据传输的流向和时间关系:单工;

2023-11-22 21:46:33 56

原创 内存管理,链表

2.malloc()必须对返回值判空,否则可能出现程序崩溃;1.有申请必须在使用完成后释放,否则可能造成内存泄漏;返回值:申请成功返回申请得到的连续空间的起始地址;指针域:保存节点关系;参数:size:申请的连续空间的字节数;头节点:第一个节点,并且不能保存有效数据。功能:在堆区申请一段连续内存空间;1.创建:malloc申请头节点;链表由头节点和数据节点构成;节点:数据域:保存数据。2.增(头插,尾插);3.删(头删,尾删);

2023-11-15 20:51:16 40

原创 函数,指针(进阶)

返回值 (*p)(类型名1,类型名2,...类型名n)定义了一个数组,数组名a,a包含5个元素,元素的类型是int *;定义了一个指针,指向一个数组,数组有五个元素,每个元素都是int;注意:被调函数内部返回的指针一般不能是被调函数的局部变量。指针函数是一个函数,返回值是指针类型的函数;数组的指针:是一个指针,指向整个数组;指针的数组:是一个数组,元素是指针;函数名是指向函数入口的地址;是一个指针,指向函数;

2023-11-13 19:26:20 23

原创 结构体,共用体,枚举型

struct 结构体类型名 变量名;类型别名 变量名;char sex;int age;union 类型名数据类型1 变量名1;数据类型2 变量名2;数据类型3 变量名3;....数据类型4 变量名4;union 共用体类型名 变量名;char ch;short sh;int in;

2023-11-09 19:55:57 29 1

原创 指针

地址:用来区分内存中不同字节的地址编号指针:指针的值是一个地址编号,指针具有指向性,具有类型指针的指向性:以自身地址编号开始的自己指向类型字节大小的连续内存空间值:连续内存的起始位置类型:从起始位置开始的字节数指针变量:用来保存指针类型数据的变量变量的值:是指向另一段内存空间起始地址的地址编号&取地址运算符:获取一个指向操作数变量类型的指针*指针运算符:获取一个指针类型数据所指向的空间*&a == *a*p == aa = 100(*p) = 100。

2023-11-09 19:06:34 27 1

原创 自定义函数

(1)封装简化有规律或重复的代码,提高代码的复用性。(2)划分模块,提高代码的可读性。1.函数的自定义返回值类型 函数名 (数据类型1,数据类型2) 形参列表 //函数首部语句块;//函数体return 值;(常量,变量,表达式) //void 没有返回值,不写或者return;返回值类型:返回值是函数执行结束返回给调用者的结果。函数名:函数名是标识符的一种。形参列表:参数是函数执行过程中所需要的一些必要信息。函数体:定义了函数实现自身功能的逻辑代码。

2023-11-07 09:00:51 26

原创 数组和算法

数据类型 数组名[N],选择排序,快速排序,插入排序,折半法排序,冒泡排序主要思想:通过多次遍历待排序的元素,在每一轮遍历中比较相邻的两个元素,并根据需要交换它们的位置,使得较大(或较小)的元素逐渐排到序列的末尾。选择排序主要思想:每一趟从待排序中选择最小(或最大)的数放在待排序数中的第一位,依此类推,进行n-1次。快速排序主要思想:先取一个基准数,大的放在后面小的放在前面(或者相反),在对左右区间重复操作,直到左右区间各剩一个数。

2023-11-05 21:54:53 20 1

原创 循环结构

3.当不明确循环执行的次数或循环的上下限时,但明确循环结束的状态,一般使用while循环。2.当明确循环执行的次数或循环的上下限时,一般使用for循环。2.循环结束条件要依赖循环体的执行结果。循环体内,短路当次循环体的后续执行。while(表达式1(逻辑值))表达式2:循环结束条件,决定循环在什么时候退出。表达式3:循环变量改变,推动循环趋向结束的代码。在循环体内,跳出离他最近的循环。外层循环一次,内层循环一遍。}while(表达式1);表达式1:初始化,进入循环之前的准备工作。函数结束返回执行结果。

2023-11-01 21:50:29 20 1

原创 基本流程控制

3.if()或者else if()、else后的{}在只有一行代码时可以省略,但要求尽量都加上{}当程序执行到某个位置时,程序会反复执行某段代码,直到循环满足退出条件。当程序执行到某个位置时程序后续的执行方向由某个条件决定,多选其一。2.if()后不能加‘;’,else if()不能加‘;注意:1.if可以单独使用,else if、else不能单独使用。3)do...while循环。自上至下,自左至右依次执行。4)利用goto实现的循环。2)switch分支。注意:嵌套不能过深(3-5层)

2023-10-31 21:15:57 21 1

原创 运算符,输入输出函数

3.输出包含多个格式化控制符的字符串printf("%d%f%lld%c",a,b,c,d);1.输出非格式化控制符的字符串printf("hello world!逗号运算符表达式的值:取最后一个子表达式的值作为逗号表达式的值。2.输出格式化控制符的字符串printf("%d", );逻辑表达式的值:逻辑真为非零值(1)逻辑假为零值(0)短路法则:左操作数执行完毕已确定表达式整体的结果,则短路右操作数的执行。注意:1.赋值运算符(双目)

2023-10-30 20:08:45 27 1

原创 编译过程,三目运算符,隐形转换

将汇编语言直接映射为二进制码,以二进制码格式的指令将会打包封存成可重新定位的目标程序的格式,生成.o文件替换原来的.s文件。.o文件由段组成,且至少有两个段:代码段和数据段。编译器首先会检查代码的规范性,是否有语法错误等,以确定代码实际要做的工作;返回值:先求表达式1,如果为真,则执行表达式2,并返回表达式2的结果;如果表达式1的值为假,则执行表达式3,并返回表达式3的结果。主要处理文件中宏定义,注释,以及将头文件插入到主代码中,生成扩展名为“.i”的文件,替换原来的.c文件(原文件保留)。

2023-10-29 14:45:16 30

原创 存储形式,常量,变量,转义字符

符号位: 0 正数 1 负数原码:绝对值的二进制反码:原码取反补码:反码+1。

2023-10-26 19:26:01 27

原创 基本的数据类型、运算符、标识符

1.文本编辑:gedit path/filename(不存在则创建)2.查看文件内容:cat path/filename3.vi/vim编辑器:vi path/filename(不存在则创建)编辑源码:不带.c后缀没有高亮提示(1)标准模式(默认):复制:将光标移到需要复制的行(n+yy)粘贴:将光标移到需要粘贴的行(p)剪切:将光标移到需要剪切的行(n+dd)撤销:(u)选中操作:v+移动选中范围+y(复制)、d(剪切)+p(粘贴)查询:(/)下一个:n上一个:shift+n。

2023-10-25 19:52:16 31

原创 终端操作常用指令

cp 源路径1/filename1 源路径2/filename2 源路径3/filename3...目标路径/(filename重命名)cp -r 源路径1/filename1 源路径2/filename2 源路径3/filename3...目标路径/(filename)mv 源路径1/filename1 源路径2/filename2 源路径3/filename3...目标路径/(filename)-opt:代表以什么样的方式执行该命令(以'-'开头,除了最左边的位置上)

2023-10-24 20:15:31 140

空空如也

空空如也

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

TA关注的人

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