自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 僵尸进程的基础学习

当一个程序的代码流程从main函数返回后,进程就结束了,但此时不能立即退出,因为还需要向其父进程汇报执行的结果和死亡的原因,又因为已无法被调度,因此进程只能以一种被动的姿态躺倒,等待其创建者(父进程)前来获取其执行结果和死亡原因。僵尸态是进程生命周期的必经阶段,是无法避免的,但为了节约系统资源,应尽快清理腾出僵尸态进程所占用的内存资源。僵尸进程指的是处于僵尸态的进程,这种进程无法进行调度,但其所占用的。子进程等待父进程对其执行wait()/waitpid()释放对应僵尸子进程的系统资源。

2024-08-24 17:25:22 218

原创 进程的创建,结束,回收基础API

父子进程是并发执行的,没有先后次序,若要控制次序,要依赖于信号量、互斥锁、条件量等其他条件。可通过延时,return,exit,提前结束父进程,使子进程在终端提示符后显示的效果;如果当前进程有不止1个子进程,则该函数会回收第一个变成僵尸态的子进程的系统资源。将当前的进程复制一份,然后这两个进程同时从本函数的下一语句开始执行;执行指定程序之后,会自动获取原来的进程的环境变量;获取正常退出的子进程的退出值。判断子进程是否被信号杀死。获取杀死子进程的信号的值。判断子进程是否正常退出。

2024-08-24 16:40:27 547

原创 进程与程序的学习

僵尸态下的进程无法运行,也无法被调度,但其所占据的系统资源未被释放。新创建的子进程拥有与父进程一样的执行代码、内存空间(父子进程的内存空间的内容是一致的,但分属不同的区域各自独立)等信息,并处于就绪态;将数据段、代码段这些运行时必要的资源拷贝到内存,另外系统会再分配相应的栈、堆等内存空间给这个进程,使之成为一个动态的实体;进程已经完成其执行(即其退出状态已返回到父进程),但未被父进程回收。,而其余的进程,从上述pstree命令的执行效果可见,都是系统初始进程的直接或间接的后代进程。

2024-08-24 15:02:49 700

原创 数据结构的顺序表的学习

数据结构是一门研究如何有效组织数据,并提高数据处理效率的学科。通过研究各种数据内部的逻辑关系,使用某种特定的存储形式,并在此基础上对数据实施各种操作,这些工作被称为称为广义上的算法。顺序存储就是将数据存储到一片连续的内存中,在C语言环境下,可以是具名的栈数组,或者是匿名的堆数组。如何有效的高效的研究数据的存储)当中的数据是一个挨着一个的。

2024-08-21 23:00:19 534

原创 GEC6818开发板显示BMP格式图片

BMP图片中的RGB数据是上下颠倒的,因此文件数据中的最后一行是图像的最上面第一行。需要注意的是,上下是颠倒的,但是左右是正常的,因此在处理数据的时候不能从最后一个字节开始,而是从最末一行的首字节开始。,无需任何解码,但毕竟RGB数据是纯数据,没有任何图片尺寸、色深等具体信息,因此我们需要了解BMP的格式头,在BMP格式头中获取图片的相关信息,然后才能正确处理内涵的RGB数据。BMP文件开头部分是BMP格式头,里面存放了RGB数据的尺寸、分辨率、色深等重要信息。虽然BMP格式文件内部存储的就是。

2024-08-21 20:39:47 474

原创 GEC6818开发板的学习

虽然LCD设备本质上也可以看作是一个文件,在文件系统中有其对应的设备节点(/dev/fb0),可以像普通文件一样对其进行读写操作(read/write),但由于对字符设备的读写操作是以字节流的方式进行的,,都是由硬件驱动工程师,根据硬件数据手册和内核的相关规定,填入某个固定的地方的,然后再由应用开发工程师,使用特定的函数接口,将这些特定的信息读出来。一般而言,图像的尺寸大小是随机的,因此更方便的做法是为LCD做内存映射,将屏幕的每一个像素点跟映射内存。中的任意元素,来操作屏幕中的任意像素点了。

2024-08-20 20:50:37 614

原创 io目录操作学习

因此操作流程与普通文件类似,有诸如打开、关闭、定位等概念,但目录是一种特殊的文件,目录存储的数据的最小单位并不是字符,而是目录项。这使得目录跟普通文件又有区别。,其内部保存的是文件的名称、i节点号等基本信息,不包含文件具体内容。打开目录并不是进入目录,实际上进入目录的函数是:chdir()读取目录获得的不是一个个的字节,而是一个个“目录项”;目录所存储的数据单元是目录项。

2024-08-10 16:21:38 301

原创 标准io的学习

文件中读入的字符数取决于遇到的这些分隔符的位置。如果没有这些分隔符,它会一直读取到缓冲区。fputs() 和 puts() 都是按行将数据写入文件。如果 ferror(fp) 为真,此时意味着遇到了错误;fgets() 和 gets() 都是按行读取文件数据。一直读取字符直到遇到空格、制表符(tab)或换行符。fopen返回的是一个指针 ,称为。注:fclose函数涉及内存释放,open返回的是一个整数 ,称为。不可对同一个文件多次关闭。函数在读取字符串时,会。的大小或者文件结束。

2024-08-09 21:01:13 503

原创 系统io的使用

系统io的学习

2024-08-01 21:27:42 454

原创 文件IO学习——概念

文件io

2024-08-01 19:36:41 342

原创 c语言之条件编译

c语言之条件编译的学习

2024-07-30 10:53:53 117

原创 c语言之预处理及宏定义

预处理与宏定义

2024-07-30 10:16:21 515

原创 c语言值联合体与枚举

c语言的联合体与枚举

2024-07-29 20:15:48 403

原创 c语言之结构体

结构体的学习

2024-07-22 20:25:27 472

原创 c语言之内存分布

内存分布

2024-07-17 14:43:20 531

原创 C语言之指针的使用

c语言的指针相关用法学习

2024-07-14 23:33:12 1394

原创 函数的使用

函数的学习

2024-07-12 20:30:51 2057

原创 C语言之二维数组的使用

二维数组的使用

2024-07-11 15:00:42 186

原创 C语言学习之一维数组的使用

数组的基础学习

2024-07-10 23:02:48 422

原创 一维数组的使用

一维数组的学习

2024-07-09 09:57:42 123

原创 goto无条件跳转

【代码】goto无条件跳转。

2024-07-08 16:35:58 188

原创 IO缓冲区的冲刷与解释

IO缓冲区解释

2024-07-06 14:55:58 167

原创 scp本地主机文件复制进Ubuntu(上传及下载)

主机文件上传及下载Ubuntu

2024-07-05 15:32:36 694

原创 alias命令,给命令定义别名

alias常用方法

2024-07-05 11:12:47 382

原创 ssh协议的远程登录

本文是简述ssh命令的用法

2024-07-04 20:30:02 1284

原创 Ubuntu共享文件夹没有文件及重启虚拟机后又没有共享文件的问题

初步学习Ubuntu时遇到的问题,没能设置共享文件夹,及重启虚拟机后又没有共享文件夹。以下是解决问题的具体方法。

2024-07-04 19:58:16 648

关于进程之间的通信IPC,管道,信号的学习

进程间通信(IPC)是操作系统中用于让不同进程之间相互通信的机制。管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。信号是在软件层次上对中断机制的一种模拟,是一种异步通信方式。该文章讲述了进程的通信通过管道与信号,以及扩展信号等实现进程间数据的交互。它们涵盖基础知识、代码示例和应用场景,适合初学者学习和参考。这些资源能够帮助你理解相关概念,并在实际开发中运用它们进行有效的进程间通信。

2024-09-02

STM32F103C8T6单片机上实现红外测温

采用STM32F103芯片,及0.96的4针oled显示屏,红外测温模块mlx90614,实现实时红外测温,检测的温度一个为当前环境温度,一个为对象温度检测。 软件编程方面,首先配置STM32的I2C,然后通过I2C写入MLX90614的指令,最后从I2C读取测量的温度数据。 调试阶段,可以使用逻辑分析仪检查I2C通讯的信号正确性,确认数据的正确性,也可以使用串口打印温度数值,进行实际的调试和验证。

2024-08-28

小端序与大端序的判断及

该程序用于检测计算机处理器的字节序(大端序或小端序)。它通过创建一个无符号整数,然后将其地址转换为一个字符指针。如果第一个字节是0x12,则处理器为大端序;否则,处理器为小端序。

2024-08-28

内核链表实现学生管理系统

内核链表需要"kernel_list.h"的文件 1、首先定义了储存学生信息的结构体;同时,为了实现链表结构,还需要定义一个节点结构,包含指向下一个节点的指针和学生信息的数据结构。 2、创建链表:初始化一个空链表,即创建一个头节点,其指针域为NULL。 3、录入学生信息:在链表末尾添加一个新的学生节点。 4、显示学生信息:遍历链表并逐个打印。 5、查找学生:遍历链表查找相同信息。 6、删除学生信息:遍历链表查找需要删除的信息,再用内核链表的删除函数删除节点。 7、修改学生信息:遍历链表找到需要修改的信息,在修改。 8、排序学生信息:选一个学生信息中的一种的信息来排序,在遍历链表,实现排序的要求,达到排序节点的效果。

2024-08-24

空空如也

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

TA关注的人

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