- 博客(20)
- 收藏
- 关注
原创 Socket编程之TCP并发服务器
将要监视的文件描述符都放在这个表里,将这表交给一个函数 (select poll epoll),这个函数默认也是。在调用select函数的整个循环过程中,select函数调用之后我们需要对就绪的文件描述符进行IO处理。为了节省空间我们用一个比特位的0和1来表示文件描述符的状态,用不同的比特位来表示不同的文件,如果已知就绪的文件描述符的个数,在遍历所有IO处理的过程中就可以减少遍历的个数,当监视的文件描述符中,有一个或多个准备就绪的时候,这个函数会返回,返回的时候会。
2023-03-05 17:38:36
1081
原创 tcp粘包/拆包问题的产生和解决
在了解粘包/拆包问题产生的原因之前,我们需要对TCP/IP数据传输的原理有一定的了解。TCP协议是面向连接的传输层协议,TCP协议数据传输是基于 "字节流" 的,它不包含消息、数据包等概念,需要应用层协议自己设计消息边界。日常网络应用开发大都在传输层进行,因此粘包拆包问题大都只发生在TCP协议中,当然链路层网络层也会发生粘包/拆包问题。 通俗就是由于Nagle算法主动影响了每次发送数据的大小,当我们在多次发送小片数据的时候,Nagle算法只会在第一次发送小片数据,收到ACK之后会尽量将剩余
2023-03-03 22:13:46
1142
原创 数据结构之顺序表、链表
顺序表与链表2.1顺序表创建及算法2.1.1顺序表的构建(以学生成绩管理为例)2.1.2顺序表的创建(构建函数)2.1.3顺序表内成员的插入(构建函数)2.1.4顺序表内成员的删除(构建函数)2.1.5顺序表内成员数据修改(构建函数)2.1.6.排序(构建函数)2.1.7顺序表的释放2.2有头单链表的创建及算法2.2.1链表的构建 2.1.2链表的创建2.1.3链表成员的插入2.1.4链表成员的删除
2023-02-09 22:50:40
487
原创 Linux系统中查找文件的命令
当我们使用find命令并用通配符通配以.c结尾的文件时并不是查找的当前路径及其子目录下的所有的 .c 文件,而会优先在当前路径下匹配 *.c 如果当前目录有多个.c文件,是一个文件一个文件查找的,所以我们需要注意通配符的使用。//查看文件开头的内容 默认显示前10行。//查看文件结尾的内容 默认显示后10行。//表示在当前目录及其子目录下查找所有文件中包含“main”的行。//动态查看文件新增的内容。//显示文件开头前2行的内容。//显示文件结尾的前20行内容。//在指定的路径及其子目录下查找指定的文件。
2023-02-05 18:24:03
3162
原创 C语言中的运算符及优先级
所谓运算符,就是一个符号。是用来连接多个表达式从而进行运算。表达式,就是由运算符、运算量、标点符号等组成的一个有效序列,是用来说明运算过程的。运算符优先级排序图
2023-02-01 13:51:50
5266
原创 C语言指针总结
指针基本概念、指针的相关操作、指针和变量的关系、指针的基本使用、指针变量的大小、指针的运算、指针与字符串、指针与一维数组、指针与二维数组、数组指针、指针数组、二级指针、指针与函数、函数指针、函数指针数组、函数指针数组指针
2023-01-29 19:59:47
4766
原创 Win11提示该文件没有与之关联的应用来执行该操作该如何解决
Win11提示该文件没有与之关联的应用来执行该操作该如何解决?如何去除电脑图标左下角的小箭头?如何恢复注册表IsShortcut文件?
2022-12-26 17:54:53
18958
32
原创 将时间在终端动态显示>标准IO
主要分为三个部分。1、获取初始时间的方式:两种选择,可以自定义时间或者获取当前系统时间(主要运用time🔍和localtime🔍函数)。2、判断初始使时间是否合理(平闰年、月日、时分秒)。3、让时间动起来,主要利用延时函数sleep(1),延时1秒,让时间从秒开始进位。 对于让时间在终端像电子表一样动起来我们需要了解标准IO缓冲区中行缓冲(stdin,stdout)机制,要想使时间在终端不停的变化我们需要调用fflush🔍函数主动刷新终端的标准输出
2022-11-27 14:55:43
445
原创 利用C语言实现快速排序
快速排序是C.R.A.Hoare于1962年提出的一种划分交换排序。它采用了一种分治的策略,通常称其为分治法(Divide-and-ConquerMethod)。快速排序并不是将小的数插入到基准数前,大的数插入到基准数后,而是通过交换元素位置的方式来实现排序,所以也称之为“舞动排序🔍” 快速排序简单来说就是确定一组数据中每个数据该去的位置,操作过程分为两步。第一步,把一组数据以其中的某个数字为基准数,分成大小两部分,然后基准数不动(它的位置已经确定)
2022-11-16 18:40:24
1115
原创 Ubuntu终端常用指令(精简)
Ubuntu终端常用指令(精简)uname -m:显示机器的处理器架构uname -r:显示正在使用的内核版本:显示硬件系统部件:显示 CPU info 的信息:显示中断:显示内存使用情况:显示哪些 swap 被使用:显示内核的版本:显示网络适配器及统计:显示已加载的文件系统date:显示系统日期cal 2021:显示 2021 年的日历表:关闭系统init 0:关闭系统telinit 0:关闭系统。
2022-11-08 14:59:42
1247
原创 编写C程序输出杨辉三角
编写C程序输出杨辉三角。编程实现:根据规律C(n,i)=C(n-1,i)+C(n-1,i-1),我们可以通过二维数组来实现杨辉三角。注意:随着行数的增加,每行中间的数字会越来越长,终端显示的图像会因为数字长度和间距的问题无法维持三角形的形状和显示规律,所以我们要合理控制打印的行数。
2022-11-03 17:34:15
3066
1
原创 如何判断系统的大小端存储
存储大小端的问题。字节序问题。如何判断大小端存储。编写一个判断cpu大小端存储的程序。小端存储:地址低位存储数据低位,地址高位存储数据高位。大端存储:地址低位存储数据高位,地址高位存储数据低位
2022-10-29 14:33:49
174
原创 如何输出一个数的二进制数
二进制数是以bit为操作数,所以要想将一个数转换为二进制数,我们需要先要将输入的数字转化为二进制数,然后从高位到低位判断每一位是 1 还是 0,最后把对应的 1 和 0 打印出来。位运算一般多用于硬件设备的控制或者标志位的控制。按位异或 按位运算 不同为1 相同为0。一般情况下涉及位运算使用的都是。,大小为32bit,所以输出的二进制数的范围是。而言的,位指的是bit位,但凡涉及位运算,按位与 按位运算 全1为1 有0为0。按位或 按位运算 有1为1 全0为0。按位取反 按位运算 0变1 1变0。
2022-10-21 20:35:02
2464
2
原创 用函数的递归实现n!
每次调用fac函数后,其返回值 f 应返回到fac函数调用的地方,因为该递归终止的条件为n=0或者n=1。例如,当n=2的时候函数体中的 “f=fac(1)*2” 当取到返回值fac(1)时,函数才会得到结果。函数fac返回值能表示的最大的无符号数为(2^32-1),所以本程序n最大的有效取值为12,输入比12大的数字或许会有结果,但是错误的结果,在程序编写时要排除这些情况。可通过改变参数和函数类型来改变程序计算的范围,例如:float型或者double型。调用该函数本身,称为函数的递归调用。
2022-10-20 14:56:10
9249
2
原创 使用指针实现atoi函数
用指针实现atoi函数的功能。Linux操作系统,Ubuntu软件。用指针实现方式: 定义一个char*类型的指针,通过将字符串中的元素减去‘0’(或字符‘0’的ASCII码)得到一个十进制数字,再定义一个int类型的整数来接收转换过后的数字。
2022-10-16 15:44:16
298
原创 用指针实现strcmp函数功能
用指针实现strcmp函数功能操作系统为Linux,软件为Ubuntu。strcmp函数的原理:将两个字符串🔍(s1,s2)的元素ascii码依次比较,直到遇到最短字符串的‘\0’,返回最后一个元素ascii码比较结果。指针实现方式: 通过定义两个char*指针🔍分别指向需要比较的两个字符串,通过指针指向的地址的偏移,比较两个字符串内元素ascii码的差值,最终得到两个字符串的比较结果。
2022-10-16 11:26:14
3160
6
原创 使用指针封装一个实现strcat功能的函数
用指针实现strcat函数。封装一个用指针实现strcat功能的函数。使用char类型的两个指针(dest,src)指向目标字符串和只读字符串首地址,通过while循环使指针(dest)指向目标字符串尾地址,再通过while循环从只读字符串首位的值赋给目标字符串尾地址的后一位,直到指针src指向只读字符串尾地址的后一位(‘\0’),最后将‘\0’赋给目标字符串的尾地址。
2022-10-15 18:39:10
955
原创 使用指针实现冒泡排序
封装一个能实现冒泡排序的函数这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。将一维数组中每一个元素从左到右分别和其后所有的元素比较,需要内(i)外(j)两层循环进行遍历比较,按照降序(升序)的方式将元素排列。1.终端输入数组长度受主函数中数组大小的限制,需要定义足够大的数组大小。2.数组名可作为数组的首地址,可以做为函数指针参数的实参。
2022-10-15 17:47:01
8099
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人