- 博客(31)
- 收藏
- 关注
原创 2024年8月23日嵌入式学习
在TCP协议之上,构建一层自定义数据协议,此协议包含数据头和数据体两部分。数据头中会存储数据体的大小等信息,接收方接收到数据后,会先解析数据头,根据其中的信息提取相应的数据体,从而避免粘包问题。这种方法虽然实现起来较为复杂,但灵活性较高,适用于各种场景。
2024-08-23 20:25:30
220
原创 2024年8月15日嵌入式学习
1.创建 -- pthread_create2.执行 -- 线程执行函数3.退出 -- pthread_exitreturn //线程执行函数中exit() //return 从main4.资源回收可结合性 --- pthread_join //这种用于 ,线程任务较短,主线程需要关心子线程状态可分离性 --- pthread_detach //子程序执行任务较长,主线程也不需要关心子线程状态。
2024-08-15 19:33:56
681
原创 2024年8月13日嵌入式学习
(2)父子进程做的事不同,名称也不同,如:shell系统——bash,在这里调用了exec函数族,作用是启动(运行)了一个新的程序,本质是在函数调用后用新的镜像程序替代当下的程序。execle和execvpe,“e”表示环境变量environ,可以调用extern char **environ作环境变量,在传参的最后要加环境变量environ;int execl(const char *path, const char *arg, ...) —— execl(“路径”,“程序名”,“参数”,NULL);
2024-08-13 19:11:23
578
原创 2024年8月12日嵌入式学习
(1).孤儿进程 --- 没有父亲 (孤儿进程则会有系统自己认领,这时候子进程则成为一个后台程序)什么是进程:进程:(进行中的程序)--正在运行的程序 (动态的) ---内存。在运行过程中也会出现先运行子进程,后运行父进程。(2).僵尸进程 --- 有父亲,但是自己先挂了。linux中的状态,运行态,睡眠态,僵尸,暂停态。程序 -- a.out (可执行程序) ---静态的。两个fork连用,就会有四个进程(包括父进程)程序2->|--- [CPU]-->进程2->|--- [CPU]-->
2024-08-12 18:42:01
284
原创 2024年8月8日嵌入式学习
vim 编辑器,gcc 编译器 ,gdb 调试器 make。根据用户id到/etc/passwd文件下解析获得。根据用户名到/etc/passwd文件下解析获得。根据gid到/etc/group文件中解析组信息。创建一个链接向oldpath文件的新符号链接文件。oldpath:被链接向的文件的路径。newpath:创建的新硬链接文件。pathname:删除文件的路径。timep:保存秒数空间的地址。timep:保存时间空间的地址。newpath:新符号链接文件。oldpath:要链接向的文件。
2024-08-08 19:49:18
557
原创 2024年8月7日嵌入式学习
文件属性,目录 inode,name ls 1231,打开目标目录2.读取目录,,3.关闭目录目录 当文件看,只不过操作函数和操作文件函数不一样。
2024-08-07 18:21:54
753
原创 2024年8月5日嵌入式学习
今日主要学习文件io,主要学习了一些函数,fopen , fclose,fgetc,fputc,fgets,fputs。fread,fwrite等。
2024-08-05 18:52:08
372
原创 2024年8月3日嵌入式学习
test -eq 相等 test 10 -eq $i [ $i -eq 10 ] if( a == 10)2.位置变量: ./3.sh /etc/passwd 123 456 内置变量。4."":打印字符串,遇到$变量则打印变量中的值。'':打印字符串,遇到$变量依然打印$变量。:上一句shell命令执行的结果。``:将中间的字符串按照命令打印。$$:当前shell的PID。PWD:当前所在的工作路径。$1:传入脚本的第一个参数。$2:传入脚本的第二个参数。
2024-08-03 17:59:15
326
原创 2024年8月1日嵌入式学习
定义了一个结构体类型 struct student,可以用它来定义变量。例如注意(1)类型与变量是不同的概念,不要混同。只能对变量赋值、存取或运算,而不能对一个类型赋值、存取或运算。在编译时,对类型是不分配空间的,只对变量分配空间。(2)对结构体中的成员(即“域”),可以单独使用,它的作用与地位相当于普通变量。(3)成员也可以是一个结构体变量(4)成员名可以与程序中的变量名相同,二者不代表同一对象。
2024-08-01 18:46:01
486
原创 2024年7月31日嵌入式学习
*p相当于*(*p),显然*p是指针变量的定义形式。现在它前面又有一个*号,表示指针变量p是指向一个字符指针变量(即指向字符型数据的指针变量)的。”表示定义一个指向函数的指针变量p,它不是固定指向哪一个函数的,而只是表示定义了这样一个类型的变量,它是专门用来存放函数的入口地址的。(5)用函数指针变量调用函数时,只需将(*p)代替函数名即可(p为指针变量名),在(*p)之后的括号中根据需要写上实参。指向函数的指针也可以作为参数,以实现函数地址的传递,这样就能够在被调用的函数中使用实参函数。
2024-07-31 19:07:46
262
原创 2024年7月29日
注意(1)指针变量前面的“*”表示该变量的类型为指针型变量。(2)在定义指针变量时必须指定基类型只有整型变量的地址才能放到指向整型变量的指针变量中。
2024-07-29 17:29:41
297
原创 2024年7月27日嵌入式学习
外部变量是在函数的外部定义的全局变量,它的作用域是从变量的定义处开始,到本程序文件的末尾。在此作用域内,全局变量可以为程序中各个函数所引用。编译时将外部变量分配在静态存储区。有时需要用extern来声明外部变量,以扩展外部变量的作用域。
2024-07-27 18:30:41
769
原创 2024年7月17日嵌入式学习
在这之中我们也了解到什么叫临时变量(匿名变量)例如打印一个i++,我们知道要首先进行赋值,在进行自加,那么在一个式子的运行过程中,不会出现这条式子赋值完了在退回去进行自加,这时,就会有临时变量的出现,先将i的值拷贝到这个临时变量中进行输出,i则进行自加。在我们进行代码的编写时,我们经常会遇到一些问题,比如将一个整型的变量赋值给了一个浮点数的变量,这或许不会出现问题,若是将一个float的变量赋值给一个int型的变量呢,这就会出现一个现象就是小数部分截断。在c语言中,常量一般是右值,左值一般是变量。
2024-07-17 18:41:07
390
原创 2024年7月16日嵌入式学习
阶码:对数据进行二进制后科学及算法后的2的次方数加127,转为二进制码。计算格式:ieee标准:1位符号位+8位阶码+23位尾数。范围:2*31-1 ~ -2*31。范围:2*63 -1 ~~ -2*63。范围:2*15-1 ~-2*15。范围:0 ~ 2*16 -1。注意:整形大小溢出会出现错误。unsigned int(无符号整型)范围:0 ~ 2*32 -1。尾数:小数点后的数据。在今日,主要学习数据类型。
2024-07-16 17:28:46
273
原创 2024年7月15日嵌入式学习内容
ls -a展示所有文件(包括隐藏文件)ls -l展示文件的详细信息。首先对于Linux的历史背景等进行了了解,对于所学习的课程有了深入的了解。整型,浮点型,字符型等等,了解到关于计算机如何处理各种数据的运算。常量,变量的含义(深入了解到变量在程序中是怎么在内存中发生改变的。rm:删除(删除文件夹需要加形式例如-r(递归))cp:拷贝命令 格式cp 源 目标 (格式)cd:跳转命令,在此之上对于目录进行了学习。学习了linux系统的基础命令。ls:将目录下的文件展示。pwd:展示当前的目录。
2024-07-15 18:41:30
204
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人