自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 收藏
  • 关注

原创 Linux 线程的控制 互斥与同步

include //头文件sem_t sem;信号量的类型 信号量的变量。

2024-08-23 08:57:21 2072

原创 Linux 线程

线程的传参的类型为void **retval,在这里传的是**retval,这个是指针的指针,含义大多为改变指针的指向,对于函数传参来说,一个*代表传值,而**代表传一个指针的指向。但大多数来说,如果传入的参数不止一个,且类型不同的参数时,要用结构体来进行传参。称为th 回调函数,是线程的执行空间。通过该函数可以将指定的线程资源回收,该函数具有阻塞等待功能,如果指定的线程没有结束,则回收线程会阻塞。====》子线程的结束不会影响主线程的运行。1、线程的回收机制 ====》不同与进程没有孤儿线程和僵尸线程。

2024-08-21 20:42:51 979

原创 Linux 用exce族函数实现minishell

实现Linux下的基本命令,平替系统的minishell。在这里需要注意,ll 和cd 因为cd属于外部命令,意思是在系统下cd 的命令的路径不在linux下,(在/bin/下)。而ll 是“ls -alhF”的别称,在linux下也不能识别,所以要将 ll换成 ls -alhF。

2024-08-21 09:56:21 437

原创 Linux 进程(2)

1.WIFEXITED(status) 是不是正常结束,如果返回非零值,则表示子进程正常结束了它的main函数,或者调用了exit()函数。2.WEXITSTATUS(status) 为真时,使用这个宏来获取子进程的退出状态码。状态码是由main函数的返回值或者exit()函数的参数决定的。3.WIFSIGNALED(status) 检查子进程是否是因为接收到信号而终止的。如果返回非零值,则表示子进程是因为信号而终止。

2024-08-20 17:37:20 1432

原创 Linux 进程

创建进程和撤销进程等都是指对 PCB 的操作,当进程被创建时,操作系统为其创建 PCB,当进程结束时,会回收其 PCB。(4)异步性:由于进程的相互制约,使得进程具有执行的间断性,即进程按各自独立的、不可预知的速度走走停停、何时开始何时暂停何时结束不可预知的性质,就会导致执行结果的不可再现性,为此在操作系统中必须配置相应的进程同步机制。数据段:一个进程的数据段,可以是进程对应的程序加工处理的原始数据,也可以是程序执行时产生的中间或最终结果,即进程运行过程中的各种数据(比如程序中定义的变量)。

2024-08-19 18:18:19 2721

原创 Linux Day4

符号链接可以是指向另一个文件的链接,也可以是指向另一个目录的链接。用于截断或扩展文件的大小。如果文件大小小于指定的大小,则文件将扩展,并且新的空间将被初始化为 0;如果文件大小大于指定的大小,则文件将被截断到指定的大小。: 一个指向以 null 结尾的字符串的指针,该字符串会被打印在错误信息前面,通常用于提供上下文信息。的当前值对应的错误信息格式化为一个字符串,并将其输出。)中搜索指定的组名,如果找到匹配的记录,它将返回一个指向。: 要重命名或移动的现有文件或目录的路径。: 被链接的目标文件或目录的路径。

2024-08-15 18:04:00 914

原创 Linux Day3 目录,文件相关的函数介绍

需要注意, . ,.. 着两个目录是所有目录都有的,一个表示当前的目录,一个表示上一路径。: 一个指向以 null 结尾的字符串的指针,表示要获取状态信息的文件或目录的路径。: 一个指向以 null 结尾的字符串的指针,表示要切换到的目标目录的路径。: 一个指向以 null 结尾的字符串的指针,表示要打开的目录的路径。: 一个指向以 null 结尾的字符串的指针,表示要创建的目录的路径。: 一个指向以 null 结尾的字符串的指针,表示要删除的目录的路径。结构的指针,该结构用于接收文件或目录的状态信息。

2024-08-14 18:04:02 633

原创 Linux Day2 文件IO(2)

一般在创建文件时,都加入截断操作,标准io中w=O_CREAT | O_WRONLY | O_TRUNC。.2 操作对象不在是流,而是文件描述符 FILE* int 0-1023。什么是文件IO,又称系统IO,系统调用,是操作系统提供的API接口函数。通过文件描述符向文件中写一串数据。读到文件结尾返回0lssek()通过文件描述符读取文件中的数据。成功返回实际写入的个数。成功返回读到数据的个数。很小的非负的整数 int 0-1023。内核每打开一个文件就会获得一个文件 描述符。

2024-08-13 21:13:17 454

原创 Linux Day1 系统编程和文件操作

1)使用标准库函数如fopen, fclose, fread, fwrite, fgetc, fputc, fgets, fprintf, fscanf等进行文件操作。1)用套接字(sockets)API,包括socket, bind, listen, accept, connect, send, recv等函数进行网络通信。nmemb 要写的数据块的个数(一般为sizeof(ptr))->1个1个读,到sizeof(ptr)为止。nmemb 要获取的数据块的个数,拷贝的数据块个数。

2024-08-12 21:25:19 2173

原创 0810枚举与位运算

1. 枚举是一种枚举类型2. 枚举中逐个列举的值,默认是从0开始如果有给定的值,则后续没有给值的 枚举元素 依次 加13. 枚举类型的 本质 实际是一个int类型的数据,占4个字节。4. 枚举类型的变量 与 整型类型的变量通用的 (意思是可以通过手动赋值)5. 与 宏定义对比区别:使用阶段不同 --- 宏定义 --- 预处理阶段枚举 --- 编译阶段 要检查语法运行阶段 参与代码运行举例:输入一个数字,打印出对应的星期几。enum days。

2024-08-12 00:22:50 831

原创 0809结构体与共用体

/形式1 先定义类型,然后定义变量{};//形式2 定义类型的同时,定义变量}d;////形式3 定义类型的同时,定义变量,可以省略 结构体名struct}d;//如果,结构体类型只用一次eg://int sno;char sex;//表示 定义出 一个 数据类型注意:1.结构体类型的使用的过程a.先定义出类型b.定义变量struct 结构体名 变量名;

2024-08-09 20:07:33 1120

原创 0808指针(3)

提示:以下内容都是针对指针练习展开的,相当于是拿指针练手,增加对指针的理解。有小伙伴不理解,勿看!

2024-08-08 19:53:09 633

原创 0807指针(2)

(1)当const位于' * '的左边,即 const type* name 和 type const *name 这两者是完全一样,无任何区别。这种情况下 const 修饰的是 name 指向的对象无法修改,但可以修改指针变量。但是一个变量经过const的修饰后,不仅拥有常量的属性,又有变量的属性,所以又说const是定义常变量的关键字。const用来修饰指针变量时分为两种情况:一种是const位于' * '的左边,另一种是const位于' * '的右边。//1.指针变量的 类型 是怎么确定的?

2024-08-07 22:14:13 501

原创 0806指针

数据类型 变量名语法:基类型 * 指针变量名(1)基类型//数据类型整型浮点型字符型数据类型指针类型....//结构体类型 ,函数类型作用:表示该指针类型 所指向的内存空间 存放什么类型的数据(2).*//定义时,表示此时定义的是一个 指针类型 的变量(3).指针变量名//符合标识符命名规则。int * p;//指p所指向的储存空间的数据类型为intint a = 10;

2024-08-06 19:26:35 744

原创 0805函数(3)

语法:// #define 标识符 字符串#define 宏名 宏值注意:1. 预处理命令 都是以 # 开头的2. 宏名 命名规则 和 之前标识符命名规则一致注:宏名一般都写大写 ,以区别与普通变量名3. 预处理 实际上 是将 宏名 用 宏值(预处理阶段的 字符串) 原样替换//文本替换注意:c语言字符串中出现的 "宏名" 不会被替换4. 应用a. 提高代码可读性b. 一改全改,方便代码修改5. 宏名的 作用域#undef 宏名。

2024-08-05 21:16:56 662

原创 0803嵌入式零基础(数组3)

/形参2 要传的是数组的长度 (因为在函数传参后只能传入数组的地址,此时sizeof不能算出数组长度,而是结果为8(64位系统里的地址大小))// 3.static 修饰的变量 -- 只能用常量初始化 (不能用变量初始化)auto //表示它是一个自动变量 (局部变量) --- 自动申请 自动释放。extern //外部的 ---表示你的变量 是存在外部的 //多文件编程。//register 修饰的变量 ,不能 做 & //(取地址)

2024-08-05 14:33:38 1097

原创 0802嵌入式零基础(数组2)

程序调用自身的编程技巧称为递归递归做为一种算法在程序设计语言中广泛应用。一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解。函数递归的两个必要条件存在限制条件,当满足这个限制条件的时候,递归便不再继续。每次递归调用之后越来越接近这个限制条件。//这里没有限制条件,或者说一直调用函数sum,最终没有确切的值返回int main()int n,y;y=sum(n);return 0;

2024-08-02 20:51:54 488

原创 0801嵌入式零基础(函数)

数据类型 //表示函数要带出的结果的 类型注意:数组类型 不能做 函数返回结果的类型返回结果的类型。注意:a.如果函数不需要带出什么结果,此时返回结果的类型说明符 一般设计为void如果类型为void,一般不写return如果要写,return;b.如果 返回结果的类型 与 类型说明符不一致,以 类似说明符 为准。最终结果的类型,都会转为类型说明符表示的类型c.类型说明符,如果不写,默认是 int 类型1.main函数之前2.main函数之后。

2024-08-01 23:25:20 328

原创 0731嵌入式零基础(数组2)

1.字符串以'\0'为结束标志,从给定的地址向后访问字符,strlen()函数返回的是字符串中'\0'前面出现字符的个数;int[4][5] a[3] //n维数组 --- n-1维数组类型的 一维数组。//三维数组 --- 是二维数组类型的一维数组。

2024-07-31 20:15:19 990

原创 0730嵌入式零基础(排序)

这里因为输出长度大于了定义的字符串长度,又因为定义的两个字符串命名类似(S,S1)所以分配的内存挨在一起,导致S1的储存位置不够,就将会占用S的储存位置,从而导致发生数据越界。:冒泡排序是一个个与身边的数作比较,然后将最值排序到最后(最前),而选择排序是一个值与其他值作比较,然后进行交换。3.处理的是字符串,操作的时候,往往以 结束标志 为 操作依据。4.处理的是数组,操作的时候,往往以 数组长度 作为操作依据。一次冒出一个数 ,相邻两个元素,两两比较,小的放前,大的放后。这个函数是危险的,不推荐使用。

2024-07-30 20:35:31 601

原创 0729嵌入式零基础

因为当n=3时n++后,程序进入循环,if(n == 4)语句为真,程序走到break语句的代码行,执行break语句后循环结束,所以屏幕上只会输出1 2 3.continue是用于终止本次循环的,也就是本次循环中continue后边的代码不会再执行, 而是直接跳转while语句的判断部分。在while循环中,只要遇到break就停止后期的所有的循环,直接终止循环。do while循环与while循环的语法类似,不同的是do while循环至少会执行一次循环体内的内容。用在循环中 ,表示跳出 本层循环。

2024-07-29 20:40:54 982

原创 0727嵌入式零基础

表达式的结果与case下的常量表达式进行匹配,匹配成功执行case后的语句。在break语句处结束switch语句,若无break语句,则执行下课i额所有case语句中的语句,直到switch语句结束;但需要注意的是,条件运算的优先级高于赋值运算,因此在表达式2和表达式3中进行赋值操作时,会出现结合错差。所以在条件运算中赋值时,需要将赋值语句用括号包围,或直接利用运算表达式的输出值进行赋值操作。这里需要注意,与或运算都有阻塞性,比如对于与来说一假则假,如果第一个表达式为假,则后面表达式则不会运行了。

2024-07-28 23:26:54 441

原创 0726嵌入式零基础

在上面的示例中,scanf() 函数根据格式控制字符串 %d, %f, %c, %s 分别读取整数、浮点数、字符和字符串,并将其存储到 num, pi, letter, name 变量中。在上面的示例中,printf() 函数根据格式控制字符串 %d, %f, %c, %s 分别输出整数、浮点数、字符和字符串的值。%f --- 转换为 十进制形式的小数,输出时默认保留6位小数,不足6位 补0。%f --- 转换为 十进制形式的小数,输出时默认保留6位小数,不足6位 补0。0X //x也会是大写。

2024-07-26 20:50:58 931

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除