
嵌入式学习
文章平均质量分 86
αβ³
studying!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
epoll机制处理TCP多客户端连接
它常用于TCP/IP套接字通信中,将数据从客户端发送到服务器或从服务器发送到客户端。:允许多个套接字绑定到相同的端口。函数用于从套接字接收数据,是网络编程中一个重要的系统调用。是一种高效的 I/O 事件通知机制,适用于处理大量并发连接的网络应用。机制的核心部分,它会阻塞程序直到一个或多个事件发生,或者直到超时。是一个用于设置套接字选项的系统调用函数,配置套接字的各种行为和特性。:指向要设置的选项值的指针。将服务器的IP地址和端口绑定到创建的套接字上。:套接字文件描述符,即你要配置的套接字。原创 2024-09-03 21:15:23 · 1268 阅读 · 0 评论 -
线程的控制
定义变量(一般定义为全局变量)semaphore信号量的类型 信号量的变量。原创 2024-08-22 20:42:04 · 749 阅读 · 0 评论 -
pthread线程
线程是轻量级进程,一般是一个进程中的多个任务。进程是系统中最小的资源分配单位是操作系统中资源分配的最小单位。每个进程都有自己的地址空间,并且拥有独立的资源(如内存、文件句柄等)进程之间通常是相互独立的,彼此不能直接访问对方的内存空间线程是系统中最小的执行单位是操作系统中程序执行的最小单位,也称为“轻量级进程”。一个进程可以包含一个或多个线程,这些线程共享该进程的资源(如内存和文件句柄),但每个线程有自己的栈、寄存器和程序计数器进程是资源分配的基本单元,而线程是调度和执行的基本单元。原创 2024-08-22 10:20:35 · 1269 阅读 · 0 评论 -
Linux中的exec族函数
exec系列函数用于替换当前进程的用户空间代码和数据,从而执行一个新的程序。调用exec系列函数不会创建新的进程,但会用新程序的代码和数据替换当前进程,因此调用exec后,进程的 ID 保持不变,但进程的行为变为执行新的程序exec功能:使用指定的路径名执行新程序,参数一个一个列出,最后一个参数必须为NULL以标记结束。功能:使用指定的路径名执行新程序,参数以数组的形式传递。功能:与execl类似,但可以传递环境变量数组envp。功能:与execv类似,但可以传递环境变量数组envp。execve。原创 2024-08-20 21:37:55 · 927 阅读 · 0 评论 -
进程相关命令和函数
查看进程相关信息1.就绪态、运行态 R2.睡眠态、等待态可唤醒等待态 S不可唤醒等待态 D3.停止态 T4.僵尸态 Z5.结束态。原创 2024-08-20 21:06:32 · 1037 阅读 · 0 评论 -
进程相关知识
静态 vs 动态:程序是静态的,它是代码和数据的集合,存储在磁盘上;而进程是动态的,它是程序在运行时的一个实例,具有自己的执行环境和状态。执行状态:程序本身并没有执行状态,它只是指令和数据;而进程包含了执行状态,比如当前的程序计数器(指示当前执行到的指令)、栈指针、内存地址空间等。唯一性:同一个程序可以被多次加载并运行,生成多个进程,每个进程都有自己的 PID 和独立的执行环境。1)程序是永存,进程是暂时的2)进程有程序状态的变化,程序没有3)进程可以并发,程序无并发。原创 2024-08-19 21:40:50 · 1028 阅读 · 0 评论 -
进程部分相关概念
进程控制块是操作系统用来描述和管理进程的一个数据结构。它包含了与进程相关的所有信息,包括进程ID、进程状态、程序计数器、内存管理信息、文件描述符等。PCB是操作系统管理进程的核心部分。因为CPU资源是有限的,多个进程需要轮流使用CPU,因此操作系统会频繁地切换进程。中包含了与进程相关的各种信息,包括进程状态、优先级、CPU时间、内存管理信息等。:进程不仅仅是代码,它还包含了程序的执行状态,如程序计数器、寄存器内容等。进程不仅仅是一个正在运行的程序,它包含了程序执行所需的所有资源和状态信息。原创 2024-08-19 20:45:16 · 1286 阅读 · 0 评论 -
文件其他相关函数
链接文件:软链接文件、符号链接文件硬链接文件命令行:ln -s 123 softlink 快捷方式创建一个链接向oldpath文件的新符号链接文件oldpath:被链接向的文件的路径newpath:新符号链接文件成功返回0失败返回-1。原创 2024-08-17 21:50:38 · 553 阅读 · 0 评论 -
标准io②
文件读写操作相关fgetc/fputc——一个字符,fgets/fputs——一次一行fread/fwrite——自定义大小,二进制。原创 2024-08-13 21:54:34 · 744 阅读 · 0 评论 -
文件io:Fileio
操作系统为了方便用户使用系统功能而对外提供的一组系统函数。称之为系统调用其中有个文件IO一般都是对设备文件操作,当然也可以对普通文件进行操作。原创 2024-08-13 21:37:37 · 972 阅读 · 0 评论 -
标准io以及文件
头文件 stdio.hI输入 O输出I: 键盘是标准输入设备 ——默认输入就是指键盘 /dev/inputO: 显示器是标准输出设备——默认输出就是指显示器Linux操作系统当中IO都是对文件的操作C一部分,任何支持标准C的系统都可使用标准IO实现文件存储标准IO在UNIX上是对文件IO的封装一般都是对普通文件操作是一种有缓存的IO 在文件IO和用户程序之间,加入缓冲区,可以有效减少系统调用的效率,节省系统IO调度资源。原创 2024-08-12 21:53:58 · 1372 阅读 · 0 评论 -
枚举类型enum、typede、位运算
创建别名的方式,特别适用于定义结构体、联合体以及指针类型,使代码更简洁、更易读。是指将变量的值一一列举出来,变量的值只限于列举出来的值的范围。如果有给定的值,则后续没有给值的枚举成员值依次+1。都提高了可读性,枚举更能说明有相关性的一些值的关系。:逻辑右移时,不保留符号位的特性,最高位始终补。如果是有符号类型的数据右移时,最高位补符号位。左移1位相当于乘2,n位就是乘2的n次方。左移1位相当于除2,n位就是除2的n次方。如果是无符号类型的数据右移时,最高位补0。a<<n表示将a这个数据左移n位。原创 2024-08-10 20:49:55 · 1298 阅读 · 0 评论 -
结构体structure、共用体union
结构体类型——用来描述复杂数据的一种数据类型构造类型(用户自定义类型)struct 结构体类型名成员列表;:表明是在构造一个结构体的类型:用来描述结构体这个类型的一个名称:表示要描述的复杂数据中用到的具体的成员变量定义的方式与之前变量的方式相同多个成员变量之间用分号隔开有数据类型,可以:定义变量、指针变量、数组结构体使用方法自己构造出这个结构体类型有了类型——定义变量、数组、指针结构体类型的指针——做函数形参、做函数返回值先定义出类型定义变量struct 结构体名 变量名;原创 2024-08-09 22:12:36 · 1418 阅读 · 0 评论 -
C语言指针②
32位体系系统中,指针变量的大小是4个字节64位体系系统中,指针变量的大小是8个字节解引用:运算符给出指针指向地址上储存的值。假设一个指针p,它存储了一个内存地址。通过解引用这个指针,可以访问或修改这个内存地址处的值。原创 2024-08-08 19:34:42 · 1203 阅读 · 0 评论 -
C语言指针①
基类型 *指针变量名;基类型(数据类型)整型、浮点型、字符型、数据结构、指针类型、结构体类型、函数类型...表示该指针类型所指向的内存空间存放什么类型的数据定义时表示此时定义的是一个指针类型的变量指针变量名符合标识符命名规则数据类型 变量名;int *p;//pointerp是一个指向int类型数据的指针int a= 10;//a所在的空间是用来存放 int (整型)类型的数据的float b=10;// 声明一个浮点型变量b,并初始化为10.0。原创 2024-08-05 21:40:51 · 520 阅读 · 0 评论 -
gcc预处理
define 标识符 字符串#define 宏名 宏值预处理命令都是以#开头的宏名的命名规则与之前的标识符命名规则一致宏名一般都写大写,以便与普通变量区别预处理实际上是将宏名用宏值(预处理阶段的字符串)原样替换C语言字符串中出现的“宏名”不会被替换应用1.提高代码可读性2.一改全改(方便代码修改)宏名的作用域只是在预处理阶段发挥作用作用范围:从定义处开始到#undef结束#undef 宏名——表示取消宏名的定义含义:表示将来代码出现的N都代表10。原创 2024-08-05 17:22:42 · 1085 阅读 · 0 评论 -
函数function3
定义:形参——数组形式+数组长度调用:实参——数组名+数组长度。原创 2024-08-03 22:45:51 · 1139 阅读 · 0 评论 -
Linux中栈的大小的修改
在Linux系统中,可以通过几种不同的方法来修改栈的大小。原创 2024-08-02 13:03:40 · 1554 阅读 · 0 评论 -
函数function
表示把功能实现出来类型标识符 函数名(形式参数)函数体代码main函数之前main函数之后函数的定义顺序并不影响程序的正确性,但如果在调用一个函数之前没有声明(即提供函数的原型),会导致编译错误或警告。如果在main函数之后定义一个函数,需要在main函数之前声明该函数,以便在main函数中调用它时不会出现编译错误。函数声明格式:返回类型 函数名(参数类型 参数名, ...);函数定义在main函数中在linux系统中可以使用(这是gun拓展的功能),但是标准C语言不支持。原创 2024-08-01 17:55:28 · 1078 阅读 · 0 评论 -
字符串操作、二维数组
二维数组:类型说明符 数组名[常量表达式][常量表达式](1) 类型说明符 ——用来说明数组中存储数据的类型(2) 数组名 ——标识符(3) 常量表达式 —— 行 :多少行(4) 常量表达式——列 :多少列eg:表示定义了一个包含有3行 4列 总共12个 int型元素的二维数组。原创 2024-07-31 22:11:46 · 1105 阅读 · 1 评论 -
排序算法以及二分查找
排序:按照一定的顺序排列升序:从小到大 降序:从大到小学习排序要了解算法的思想、掌握c语言如何实现的、以及如何应用。原创 2024-07-30 22:09:57 · 459 阅读 · 0 评论 -
一维字符数组
数据类型 数组名[数组长度];//一维字符型数组从数组角度数组 用来 存储数据的一维字符型数组 --- 放字符串"hello" //字符串字符串的角度1.字符串 是 当做字符数组来处理的。2.字符串 有一个专门的结束标志 '\0'3.处理的是字符串,操作的时候,往往以 结束标志 为 操作依据4.处理的是数组,操作的时候,往往以 数组长度 作为操作依据5.字符数组可以用来存储字符串 ,而字符串在内存中存储的方式 也是以 字符数组形式存储。原创 2024-07-30 22:19:01 · 350 阅读 · 0 评论 -
逻辑运算、选择语句...
逻辑运算符&& || ! 闰年的判断、选择语句if语句、条件运算、switch语句原创 2024-07-28 13:23:55 · 960 阅读 · 0 评论 -
变量命名、输入输出
驼峰命名法、内核命名法、C语言输入输出函数、getchar、putchar、printf、scanf、格式控制字符、占位符、辅助控制符、函数库连接undefined reference to 'sqrt'......原创 2024-07-26 20:44:39 · 1078 阅读 · 1 评论 -
转义字符、算术运算、类型转换...
精度丢失:当将高精度类型的数据赋值给低精度类型时,由于低精度类型无法存储高精度类型的全部信息,可能会导致数值精度的丢失。例如,将double类型的数据赋值给float类型时,可能会丢失一些小数部分的精度。原创 2024-07-25 20:57:07 · 1001 阅读 · 1 评论 -
数据结构、进制
定义:数据种类的划分划分数据类型的必要性:选择合适的数据类型节约内存。原创 2024-07-24 20:49:22 · 1284 阅读 · 1 评论 -
初识linux
嵌入式系统是以应用为中心、以计算机技术为基础、软硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。原创 2024-07-23 21:07:03 · 498 阅读 · 1 评论