- 博客(32)
- 资源 (1)
- 收藏
- 关注
原创 Linux:HTTP协议
基本介绍:HTTP(Hyper Text Transfer Protocol): 全称超文本传输协议,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。HTTP 是一种应用层协议,是基于 TCP/IP 通信协议来传递数据的,其中 HTTP1.0、HTTP1.1、HTTP2.0 均为 TCP 实现,HTTP3.0 基于 UDP 实现。现主流使用 HTTP1.0 和 HTTP3.0。
2024-08-30 17:18:07
512
原创 linux:网络编程之TCP
B/S模型是一种网络架构模式,其中用户通过网页浏览器(如Chrome、Firefox等)来访问和使用服务器上的应用程序或数据。
2024-08-29 15:56:14
686
原创 Linux:网络编程之TCP/IP模型,UDP协议
在点分十进制的表示方法中,IP地址是一个32位的二进制数,通常被分割为4个8位二进制数(也就是4个字节),每个字节的十进制取值范围是0-255,各字节之间用点(.)分隔。它定义了网络通信的七层结构,每一层都执行特定的功能,并且每一层都使用下一层提供的服务,同时向它的上一层提供服务。函数用于初始化一个套接字,并返回一个与该套接字关联的文件描述符(file descriptor),该描述符随后可用于进一步的套接字操作,如绑定地址、监听连接、接受连接、发送和接收数据等。函数调用成功,它返回接收到的字节数。
2024-08-28 01:15:01
951
原创 linux:进程间的通信 信号通信
自定义信号处理:1、必须事先定义自定义函数,必须是如下格式:void fun(int sig) ////sig 接收到的信息编号2、在所有的信号中有如下两个特列:10 SIGUSR112 SIGUSR2专门预留给程序员使用的未定义信号。练习 SIGUSR1的使用。
2024-08-27 00:38:33
1135
原创 linux:进程间的通信
IPC(Interprocess Communication,进程间通信)是指在不同进程之间传播或交换信息的一种机制。它允许多个进程在同一操作系统中协同工作,实现数据的共享和同步。IPC主要包括三大类通信方式:古老的通信方式、IPC对象通信以及socket通信。
2024-08-24 10:05:14
820
原创 linux:线程的控制 互斥、同步、死锁
pthread_mutex_t mutex; 功能:将已经定义好的互斥锁初始化。 参数:mutex 要初始化的互斥锁 atrr 初始化的值,一般是NULL表示默认锁 返回值:成功 0 失败 非零int pthread_mutex_lock(pthread_mutex_t *mutex); 功能:用指定的互斥锁开始加锁代码 加
2024-08-22 20:16:43
791
原创 linux:线程及其相关函数,线程的回收
它用于释放线程在运行过程中申请的资源,确保程序不会出现资源泄漏,在大型项目中子线程申请的资源可能会在别的函数里使用,所以不可能该子线程结束了就清除资源,应该在其它地方使用后,统一清除这些资源才用这2个函数清除资源pthread_cleanup_push 和 pthread_cleanup_pop。线程的传参的类型为void **retval,在这里传的是**retval,这个是指针的指针,含义大多为改变指针的指向,对于函数传参来说,一个*代表传值,而**代表传一个指针的指向。本质上是一个函数的名称即可。
2024-08-22 01:20:49
923
原创 linux:进程空间的回收,exec族
这个说法在概念上是正确的,但实际上,子进程并不是父进程的完全物理副本。在Unix和类Unix系统中,fork()系统调用创建了一个与父进程几乎完全相同的子进程,包括环境变量、打开的文件描述符、当前工作目录等。但是,子进程和父进程在内存中的物理表示是不同的,它们各自拥有自己的地址空间。:子进程和父进程的正文段(text segment,即程序代码)在物理上是共享的(通过操作系统的内存管理机制,如页表),但它们是只读的。
2024-08-21 09:07:36
902
原创 Linux:进程的概念,进程相关函数
分析:fork()它返回值有两种情况,大于0,等于0,&&如果左边为1,右边执行,如果为0,右边不执行,|| 如果左边为1,右边不执行,如果左边为0,右边执行,按照这个思想去分析。进程上下文切换是操作系统内核在CPU上对于进程(包括线程)进行的一种活动,主要目的是在多个进程之间共享CPU资源。(进程控制块)的缩写,即进程控制块,是操作系统中用于存储进程管理所需信息的数据结构。子进程复制父进程的0到3g空间和父进程内核中的PCB,但id号不同。克隆的进程称为子进程,原有的进程称为 父进程。
2024-08-20 00:29:45
892
原创 linux:有关目录、链接文件的函数 Makefil、gdb的使用
功能:根据用户id到/etc/passwd文件下解析获得结构体信息参数:uid:用户id返回值:成功返回id对应用户的信息失败返回NULLpasswd结构体的定义通常如下所示。
2024-08-15 20:29:14
1072
原创 linux 文件编程
它主要通过标准C库中的函数来实现,提供了丰富的接口用于数据的输入和输出。7种,d为目录 ,-为普通文件,l为软链接(符号链接,类似于快捷方式),p管道文件,s套接字文件, ,c为字符设备,b块设备。文本文件是一种计算机文件,它包含的是人类可读的文本数据,而不是二进制代码或机器语言。第一部分为用户权限,即后面的第一个linux,第二个为小组权限,即第二个linux。文件用来存储数据(数据,指令);ASCII码数据的流 \n \t。流对象 ===》头 《===数据====》尾。r为读,w为写,x可执行。
2024-08-13 09:21:13
313
原创 枚举类 typede fmalloc 函数 free 函数 位运算
enum 枚举名列举各种值1, //枚举元素//枚举常量列举各种值2,enum fire列举各种值,之间用逗号隔开,不需要写类型名2.注意1. 表示 定义了一种 枚举类型2.枚举中逐个列举的值,默认是从0开始如果有给定的值,则后续没有给值的 枚举元素 依次 加13. 枚举类型的本质 实际是一个int类型的数据4. 枚举类型的变量 与 整型类型的变量通用的与 宏定义对比区别:使用阶段不同 宏定义 --- 预处理阶段。
2024-08-11 18:07:51
1263
原创 结构体 共用体 枚举 位运算
形式1 先定义类型,然后定义变量{ };形式2 定义类型的同时,定义变量}d;形式3 定义类型的同时,定义变量,可以省略 结构体名struct}d;//如果,结构体类型只用一次。
2024-08-09 23:13:46
1328
原创 学习指针第二日
地址(指针)传递 //传的是地址 --可以实现被调修改主调。//定义时候的 * 修饰变量名的 表示定义的是一个指针类型的变量。值 --- 数组首元素的地址 --- 是一个常量。形参 -- 指针类型 变量 ,用来接收实参 (实参是要操作的内存空间的地址)//&a[0] 地址的类型 -- int *//此时表示定义了两个 int*类型的变量 p 和q。//NULL 0号地址 --- 空指针。//a[0]的数据类型 -- int型。形参 -- 数组形式 //本质上是一个指针类型变量。
2024-08-06 20:10:06
599
原创 c语言:预处理 初学指针
语法:// #define 标识符 字符串#define 宏名 宏值注意:1. 预处理命令 都是以 # 开头的2. 宏名 命名规则 和 之前标识符命名规则一致注: 宏名一般都写大写 ,以区别与普通变量名3. 预处理 实际上 是将 宏名 用 宏值(预处理阶段的 字符串) 原样替换//文本替换注意: c语言字符串中出现的 "宏名" 不会被替换4. 应用a. 提高代码可读性b. 一改全改,方便代码修改5. 宏名的 作用域#undef 宏名。
2024-08-05 21:11:29
910
原创 static、extern等关键字 作用域 字符数组
一维字符型数组 --- 用来存放字符串因为处理的是字符串数据,字符串操作的 依据,主要看结束标志 '\0'而不是 数组长度注意:一维字符型数组做函数参数形参 数组形式实参 数组名。
2024-08-04 14:36:56
954
原创 c语言:函数、二维字符数组
类型标识符 函数名 (形式参数)函数体代码(1)类型标识符数据类型 //表示函数要带出的结果的 类型注意:数组类型 不能做 函数返回结果的类型返回结果的类型。注意:a.如果函数不需要带出什么结果,此时返回结果的类型说明符 一般设计为void如果类型为void,一般不写return如果要写,return;b.如果 返回结果的类型 与 类型说明符不一致,以 类似说明符 为准。最终结果的类型,都会转为类型说明符表示的类型。
2024-08-01 20:31:26
671
原创 c语言学习 字符串数组 字符串函数 二维数组
s的长度 ---数组的长度 6s的长度 ---数组的长度 10对于:h''e''l''l''o''\0'它的字符串长度'\0' 前面字符个数"hello" 字符串长度 5个它所占的内存空间的字节数是 6 个。
2024-07-31 21:32:42
683
原创 c语言学习之排列 插序法和冒泡法还有二分法
数组是a[i],len是数组长度;用数组a[1,3,2,5,4]作为例子,当i=0时,a[i]=a[0]=1和后面的4个数比较,即循环a[j];当遇到比a[i]小的数时,就做数值交换;当i=4,即a[i]=a[4]=5时,a[i]就和最后一位数a[j]进行最后的比较,所以i的范围是i
2024-07-30 20:48:14
499
原创 c语言学习 数组 do while语句
/表示定义了一个可以存放10个int型数据的数组。整型 int/short/long/long long。如int a[ ]={1,2,3,4,5,6};常量表达式 //数组长度 --代表数组中元素的个数。//理解的角度,相当于一下子定义出10个int型变量。起名字规则 与 之前变量名起名规则一致。//这个数组中存放的是int型的数据。if i<n,说明循环提前结束,有比n小的数可以被n整除,n就不是素数。--- [ ] //这个就是数组类型。//存放了10个int型的数据。
2024-07-29 20:18:54
414
原创 C语言之流程控制
流程控制主要分为顺序结构、选择结构、循环结构。任何一段C程序都能由上面三种结构组合构成。1.goto语句goto并不是真正的循环语句,只是通过转向操作可以实现循环的效果。以以下代码讲解goto如何完成循环 如下int i = 0;loop:i++;goto loop;代码中 loop是一个标签,这段代码通过goto的转到功能在i还小于等于100时,总是会回到sum = sum + i;这句代码依次往下执行由此构成循环,得到1加到100的总和。2.switch语句。
2024-07-29 08:59:01
146
原创 c语言学习之输入输出--getchar、scanf、printf
m ---- 按指定宽度输出 ,左对齐 (负号表示左对齐)%f --- 转换为 十进制形式的小数,输出时默认保留6位小数,不足6位 补0。%X --- 转换为 十六进制形式 a b c d e f以大写形式输出。# ---- %#x //打印出8进制 或 16进制的前缀。%g --- 以 一种 更简洁的方式输出,同时不会输出无意义的0。0m ---- 多出来的位置 可以填充0。参数:void --- 表示为空,表示使用时不需要给实参。0X //x也会是大写。
2024-07-26 19:46:13
615
原创 深入学习 数据类型 运算符 表达式 i++,++i
有符号 ---符号位扩展(高位补符号位)//unsigned int seed --- 形式参数 //变量 --- 形参。++i //前置加加 --- 先加(让i自增) 后用(表达式的结果)判断是否可以定位:&a,取地址运算 --- 获取a对应内存空间的首地址 --地址编号。2. i++ //后置加加 --- 先用(表达式的结果) 后加(让i自增)1.编译时 报错 --- 语法错误 --- 检查代码的语法问题。2.运行时 报错 --- 逻辑问题 --- 检查思路或逻辑问题。
2024-07-25 20:08:28
874
原创 暑假学习第二日
1|000 0000 0000 0000 0000 0000 0000 0111 //原码。1|111 1111 1111 1111 1111 1111 1111 1000 //反码。1|111 1111 1111 1111 1111 1111 1111 1001 //补码。ch这个变量中 最终放的放的实际上是 'a' 对应的ascii码值 (整型)'a' --计算机中保存实际上是这个符号 对应 ascii的编码值。有符号 --- 表示 有一位(最高位)充当了符号位,其余位是数值位。
2024-07-24 20:02:40
951
原创 自学嵌入式第一日
1.嵌入式系统的定义:嵌入式系统是以应用为中心,以计算机技术为基础,软件硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。cp file1.txt file2.txt //复制出一份file1.txt 复制成 file2.txt。mkdir -p 1/2/3或mkdir 1/2/3 -p // parent 表示创建多级目录。cd ~ //~ 就是家目录 /home/linux。rm file1.txt //删除file1.txt 这个文件。
2024-07-23 20:01:22
572
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人