- 博客(19)
- 收藏
- 关注
原创 嵌入式学习Day21
目录当文件看,只不过操作函数和操作文件函数不一样。从目录流中读取文件信息并将保存信息的结构体地址返回。打开一个目录获得一个目录流指针。关闭之前已经打开的目录流对象。改变当前程序的工作路径。
2024-05-16 19:11:54
320
原创 嵌入式学习Day20
将stream流文件中的文件指针从whence位置开始,偏移offset字节的长度。操作系统为了方便用户使用系统功能而对外提供的一组系统函数。获取当前文件流指针的具体位置,一般以文件开头到当前指针的字节数为返回值。其中有个文件IO,一般都是对设备文件操作,当然也可以对普通文件进行操作。一个基于Linux内核的没有缓存的IO机制。内核每打开一个文件就会获得一个文件描述符。2 操作对象不在是流,而是文件描述符。通过文件描述符向文件中写一串数据。通过文件描述符读取文件中的数据。获得一个文件描述符。
2024-05-15 17:26:38
536
原创 嵌入式学习Day19
d ,-,l(link:软链接),p管道(pip),s(socket), ,c(字符设备),b(块设备)fread/fwrite 自定义大小 二进制。linux中一切都是文件,文件用来存储数据(数据,指令)。FILE 结构定义的对象 FILE * 称之为流对象,也叫文件流指针。数据从文件当中流入和流出所体现出来的字节流叫做流。fgets/fputs 一次一行。ASCII码数据的流。2. 读写操作相关,1.文件的概念,作用。3.流: FILE*
2024-05-14 17:22:18
466
2
原创 嵌入式学习Day18
2.位置变量: ./3.sh /etc/passwd 123 456 内置变量。3.chmod +x XX.sh 追加执行权限。shell脚本的本质就是一系列shell命令的集合。4." ":打印字符串,遇到$变量则打印变量中的值。' ':打印字符串,遇到$变量依然打印$变量。:上一句shell命令执行的结果。` `:将中间的字符串按照命令打印。$$:当前shell的PID。$1:传入脚本的第一个参数。$2:传入脚本的第二个参数。while [ 条件 ]$#:传入参数的个数。
2024-05-13 18:27:34
344
1
原创 嵌入式学习Day15
在可能出现错误的位置加入打印,前一句能够打印出来,后一句打印不出来,问题就可以定位。4.运行代码使其产生段错误,段错误产生后会生成一个包含错误信息的core文件。5.gdb a.out core 找到错误产生的位置。q 退出。b 函数名/行号 设置断点。2.使用gdb调试生成的代码。链表的创建,插入,删除,打印,排序以及销毁。1.编译代码时加入-g选项。3.编译代码加入-g选项。到两次打印中间的代码。1.配置core文件。1.core文件调试法。
2024-05-07 19:30:50
313
原创 嵌入式学习Day14
union 公用名{数据类型1 成员变量1;数据类型2 成员变量2;..注:1.结构体每个成员变量空间独立2.共用体每个成员变量空间共享。
2024-05-06 17:46:15
780
1
原创 嵌入式学习Day13
3.构造的数据类型 struct date d;1.结构体成员变量只能存放在内存地址为自身基本类型长度整数倍的内存单元中。2.数组 int a[5];2.结构体大小必须为最大成员变量类型的整数倍。-> 结构体指针类型访问成员变量使用->. 结构体变量类型访问成员变量使用.数据类型1 成员变量1;数据类型2 成员变量2;数据类型3 成员变量3;最终类型是由成员变量的类型决定。数据类型:1.基本数据类型。struct 类型名。1.结构体类型的定义。
2024-05-01 11:10:02
220
原创 嵌入式学习Day12
二维数组的数组名是指向数组第一行所有元素的指针。1.指针函数是函数,函数的返回值是指针。2.函数指针是指针,指针指向一个函数。注意:不能返回局部变量的地址。二维数组传递数组指针和长度。指针数组传递二级指针和长度。一、二维数组和指针的关系。四、指针函数和函数指针。
2024-04-29 20:04:31
110
原创 嵌入式学习Day11
void * 作为函数参数,可以传入char *、double *、int *的指针,实现一个函数原型下的不同类。const 修饰 p, p不可以改变, *p可以改变,一定要初始化,否则该指针为野指针。int *a[5]:定义一个数组,数组名为a,有5个元素,每个元素为int*型。void * -> int *、char *、double * 不需要强制类型转换。const 修饰p *p, p不可以改变, *p不可以改变,一定要初始化。const 修饰 *p, p可以改变, *p不能改变。
2024-04-28 19:57:30
424
1
原创 嵌入式学习Day10
数据类型 *变量名;指针均占8个字节,int* 指向4字节空间, double* 指向8字节空间, char* 指向1字节空间在64位操作系统中,所有指针均占8个字节int *p, *q;野指针:未经初始化的指针或指向已经被释放过空间的指针注意:不要使用未经初始化的指针。
2024-04-26 18:35:30
938
1
原创 嵌入式学习Day8
1.先定义再使用2.函数定义的形式函数类型 函数名(数据类型1 形式参数1, 数据类型2 形式参数2, 数据类型3 形式参数3, ..)函数体;return 返回值;函数类型:函数运行结果的类型(函数返回值与函数类型不匹配时,强制将返回值转换为函数类型后返回、函数类型不写默认为int类型)函数名:函数的名字(要求与变量名要求一致)注意:1.函数类型不写,默认为int类型2.如果不想返回结果,函数类型需要写成void类型。
2024-04-24 21:03:49
606
原创 嵌入式学习Day7
char 数组名[元素个数];注意:1.元素个数必须为常量或常量表达式;2.元素大小必须能存放下字符串和末尾的\0字符。字符型数组和字符串的区别:1.字符串:一定包含最末尾的\0字符;2.字符型数组:一组字符的集合,最末尾不需要一定是\0字符。char str[第一维大小][第二维大小];
2024-04-23 18:24:27
947
原创 嵌入式学习Day6
数组名[元素下标]:数组名可以是常量、变量、常量或变量的表达式。例:int a[5];int a[3+2];元素个数:sizeof(a) / sizeof(a[0])数组空间大小 = 每个元素所占空间大小 * 元素个数。注:数组第一个元素下标从0开始,到元素个数-1。没有给定初值的元素统一初始化为0。数据类型 数组名[元素个数];注:数组名和变量名要求一致;连续性:数组存放空间连续;一维数组:相同类型有限数据的一个集合。3.获得最大值的下标;4.获得最小值的下标;5.数组元素的倒置;
2024-04-22 17:59:50
220
原创 嵌入式学习Day5
switch (整形表达式)case 常量1:语句块1;break;case 常量2:语句块2;break;case 常量3:语句块3;break;default:语句块4;注:1.switch后面的表达式必须为整型,不能为浮点数;2.case后面必须为常量,不能为常量表达式或者变量;3.switch只与case后面的值比一次,然后顺序向下执行。
2024-04-21 15:39:28
343
1
原创 嵌入式学习Day4
1.scanf中出现非控制输入符时,需要原封不动输入,否则从不匹配的位置开始不在向后读取;2.if可以脱离else单独使用,else不能脱离if单独使用;3.if,else不加大括号使用,默认控制一句代码。注:最多嵌套3——5层,深层次嵌套会影响代码的可读性。5.scanf使用_%c形式,接收一个非' '或'\n'的字符。注:1.if后必须加条件,else后不能加条件;>= 大于等于。<= 小于等于。3.scanf除了%c外均无法接收' '和'\n';== 等于。
2024-04-18 18:51:22
293
1
原创 嵌入式学习Day2
if #endif #elif #else #ifdef #ifndf 将满足的代码加入到程序中,不满足的代码去除。(2)变量储存数据值时使用,变量类型要与储存的数据类型保持一致;(3)变量需要初始化,未经初始化的变量会被赋予随机值。1.名字有数字,字母,下划线组成,不能以数字开头;有符号的整数类型(默认):signed。在程序运行过程中的值可以发生改变的量。无符号的整数类型:unsigned。均为有符号,没有无符号类型的概念。将C语言代码编译为汇编代码。将汇编代码编译为二进制代码。
2024-04-16 20:22:36
333
原创 嵌入式学习Day1
ls——查看当前目录下的文件;cd——切换工作目录;cp——复制普通文件,(-rf)目录文件;mv——移动目录/普通文件;touch/rm——创建/删除普通文件;mkdir/rmdir——创建/删除空目录文件,(-rf)强制删除目录文件;
2024-04-15 18:06:46
287
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人