自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 IO 进程 24/12/16

是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。不可靠信号:也称为非实时信号,不支持排队,信号可能会丢失,比如发送多次相同的信号,进程只能收到一次,信号值取值区间为1~31。4、循环等待,即存在一个等待队列:P1占有P2的资源,P2占有P3的资源,P3占有P1的资源。可靠信号:也称为实时信号,支持排队,信号不会丢失,发多少次,就可以收到多少次,信号值取值区间为32~64。管道中无数据,将写端关闭,读操作会立即返回。

2024-12-16 18:16:47 858

原创 IO 笔记

信号量代表的是某一类资源,它的值表示系统中该资源的数量,信号量>0的话,表示有资源可以使用,可以申请到资源,继续执行程序,信号量<= 0的话,表示没有资源可以使用,无法申请到资源,阻塞。互斥锁:通过互斥锁可以实现互斥机制,主要用来保护临界资源,每个临界资源都由一个互斥锁来保护,线程必须先获得互斥锁才能访问临界资源,访问完资源后释放该锁。函数接口:sem_open\sem_wait\sem_post\sem_close。函数接口:sem_init\sem_wait\sem_post。

2024-12-13 18:35:09 626

原创 IO进程 学习笔记

但是需要考虑临界资源(临界资源包括同一个文件,全局变量等)访问的问题,进程间的通信相对复杂,需要借助进程间的通信机制(借助3g-4g的的内核空间)vfork(): 保证子进程先运行,在调用exec()或exit()之前,与父进程数据共享,在exec()或exit()调用之后,父进程才能运行。共享的资源:可执行的指令,静态的数据,进程中打开的文件描述符,信号处理函数。父进程没有回收子进程的资源,子进程就会变成僵尸进程,应该避免僵尸进程的产生。fork创建一个子进程,父进程返回子进程的pid,子进程中返回0。

2024-12-12 20:29:33 472

原创 IO进程学习笔记

进程创建后,进程进入就绪态,当CPU调度到此进程时进入运行态,当时间片用完时,此进程会进入就绪态,如果此进程正在执行一些IO操作(阻塞操作)会进入阻塞态,完成IO操作(阻塞结束)后又可进入就绪态,等待CPU的调度,当进程运行结束即进入结束态。该类进程经常与用户进行交互,需要等待用户的输入,当接收到用户的输入后,该类进程会立刻响应,典型的交互式进程有:shell命令进程、文本编辑器等。睡眠态(等待态):可中断的睡眠态(S):处于等待状态中的进程,一旦被该进程等待的资源被释放,那么该进程就会进入运行状态。

2024-12-11 17:22:21 993

原创 IO进程 学习笔记

文件描述符都是非负的整数,取值范围(0-1023),最多产生1024个文件描述符,文件描述符被分配的时候是连续的。内核向上提供的输出输出函数接口,叫做系统调用函数接口。基于内核,内核不同,系统调用函数接口不同,文件IO不同操作系统函数接口不通用。标准IO默认打开三个流:标准输入(stdin),标准输出(stdout),标准出错(stderr)文件IO默认打开三个文件描述符,0(标准输入),1(标准输出),2(标准错误)文件IO默认打开三个文件描述符,0(标准输入),1(标准输出),2(标准错误)。

2024-12-10 17:33:31 542

原创 IO进程学习笔记

标准IO是C库中定义的一组用于输入输出的函数接口。不同的操作系统只要移植了C库就可以使用,它是在系统调用之前做了一个二次封装,相当于是间接的进行了系统调用。基于内核,内核不同,系统调用函数接口不同,文件IO不同操作系统函数接口不通用。FILE* 是一个指向 FILE 结构体的指针,这个结构体由标准库定义,用于表示一个打开的文件或输入/输出流。标准IO在系统调用之前作了二次封装增加了缓存机制,减少了系统调用的次数,提高了程序的效率。所有的I/O操作仅是简单的从程序移进或者移出,这种字节流,就称为流。

2024-12-09 18:51:31 856

原创 数据结构学习笔记

(3) 数据结构中,沿着某条路线,一次对树中每个节点做一次且仅做一次访问,对二叉树的节点从1开始进行连续编号,要求每个节点的编号大于其左、右孩子的编号,同一节点的左右孩子中,其左孩子的编号小于其右孩子的编号,可采用( )次序的遍历实现编号(网易)二叉树(Binary Tree)是n(n≥0)个节点的有限集合,它或者是空集(n=0), 或者是由一个根节点以及两棵互不相交的、分别称为左子树和右子树的二叉树组成。度数2的n2:度数为2 那么度数为2节点的子节点共有 2*n2 子节点。

2024-12-06 18:44:13 1032

原创 数据结构学习笔记 双向链表

将新节点的 prior 指针指向直接前驱节点。将直接前驱节点的 next 指针指向新节点。6.2 双向链表相关操作。查找指定数据出现的位置。删除双向链表中指定数据。判断双向链表是否为空。删除双向链表指定位置。

2024-12-05 19:15:35 609

原创 数据结构学习笔记

答:rear 后面 队尾,在插入的时候,插入之前需要先判断 rear+1,也就是他的下一个为位置是否 等于 front 来判断队列是否为满,会造成浪费一个存储位置。注意:为了避免假溢出问题,即队列前面还有空闲,但是队尾已经出现越界,所以在实际使用队列时,为了使队列空间能重复使用,往往对队列的使用方法稍加改进,需要引入。队列是只允许再两端进行插入和删除操作的线性表,在队尾插入,在队头删除,插入的一段被称为“队尾”,删除的一端被称为“队头”。N-1个 为什么?ptop是传入的栈针的地址,data是入栈的数。

2024-12-04 18:57:07 744

原创 数据结构学习笔记

约瑟夫环问题,是一个经典的循环链表问题,题意是:已知 n 个人(分别用编号 1,2,3,…在此基础上,如果想取出元素 1,根据“先进后出”的原则,必须先依次将元素 4、3、2 出栈,最后才能轮到元素 1 出栈。将头节点与当前链表断开,断开前保存下头节点的下一个节点,保证后面链表能找得到,定义一个q保存头节点的下一个节点,断开后前面相当于一个空的链表,后面是一个无头的单向链表。遍历无头链表的所有节点,将每一个节点当做新节点插入空链表头节点的下一个节点(每次插入的头节点的下一个节点位置)

2024-12-04 09:33:05 495

原创 数据结构学习笔记

写一个有头单项链表,用于保存输入的学生成绩,实现一输入学生成绩就创建一个新的节点,将成绩保存起来。再将该节点链接到链表的尾,直到输入-1结束。和顺序表不同同,使用链表存储数据,不强制要求数据在内存中集中存储,各个元素可以分散存储在内存中。链表又称单链表、链式存储结构,用于存储逻辑关系为“一对一”的数据。要求:每个链表的节点由动态内存分配得到 , 也就是用malloc。在顺序表中间插入或删除元素时都涉及到元素的移动,效率较低。有头单向链表:存在头节点,头节点指针域有效,数据域无效。顺序表的内存空间连续。

2024-12-03 08:43:29 469

原创 数据结构学习笔记

数据结构大纲数据结构、算法(理解)线性表:顺序表(数组)、链表(单向链表、单向循环链表、双向链表、双向循环链表)、栈(顺序栈、链式栈)、队列(循环队列、链式队列)树:特性、二叉树(性质、创建、遍历)排序方法、查询方法(原理、思路)为什么学数据结构C语言如何写程序,学数据结构是为了简洁、高效的写程序。如果遇到一个实际问题,需要写代码实现相应功能,需要解决两个问题:如何表达数据之间的逻辑关系以及怎么存储到计算机中?数据结构:数据的逻辑结构以及存储结构及操作(数据的运算)

2024-11-29 19:04:52 2121

原创 C高级学习笔记 gdb调试工具 指针函数 函数指针 函数指针数组

…接上文gdb调试工具gdb调试的作用gdb用于调试代码中的逻辑错误而非语法错误gdb调试流程生成可以使用gdb调试的执行文件gccgxxxc------>生成的文件可以使用gbb调试进入gdb工具gdb可执行文件使用gdb工具开始调试可执行文件r或者run:运行代码l或者list:查看代码 显示当前行下面的10行代码敲击回车会执行上一次所执行的指令。

2024-11-27 18:21:55 912

原创 shell数组 Linux分文件 make工具

获取到 main.c fun.c字符串,根据模式匹配,得到 main.o fun.o 字符串每一个参数之间以逗号作为分隔,要替换的字符串之间以空格作为分隔。所以通过 make 工具,可以查找到修改过的文件(根据时间戳),只对修改过的文件进行编议,这样大大的减小的编译时间,提高编译效率。当项目中包含了多个.c文件,但只对其中一个文件进行了修改,那用 gcc 编译会将所有的文件从头到尾编译一遍,这样的效率非常低。${#arr[下标]} ---> 获取数组中指定下标元素的长度(字符长度)

2024-11-26 19:14:07 1078

原创 C高级学习笔记

a -ge b 测试a是否大于等于b greater equal than。a -le b 测试a是否小于等于b less equal than。a -gt b 测试a是否大于b greater than。a -ne b 测试a和b是否不相等 not equal。a -lt b 测试a是否小于b less than。a -eq b 测试a和b是否相等 equal。-f name 测试name是否为一个普通文件。-d name 测试name是否为一个目录。-n s1 测试字符串的长度不为0。

2024-11-21 18:32:55 596

原创 C高级学习笔记

首先,从使用的角度讲,两者没有任何区别,都与正常文件访问方式一样,支持读写,如果是可执行文件的话也可以直接执行。read -t 秒数 变量 ---> 如果用户n秒不输入,就结束输入向后执行语句。注:tar -cvf file.tar * ----->只归档不压缩。read -n 个数 变量名 ---> 如果输入n个字符,自动停止。硬链接:创建新的硬链接,连接数会增加,删除硬链接,链接数减少。-j:由tar生成归档,然后由bzip2压缩 .bz2。read -s 变量 ---> 输入的信息不回显。

2024-11-20 18:45:34 940

原创 c高级学习笔记

Ext3、VFAT、ISO9660(通常是CD-ROM)、UFS(Unix File System,Unix文件系统)、ReiserFS、XFS、JFS、FAT(File Allocation Table,文件分配表)、FAT16、FAT32、NTFS(New Technology File System)等;指本地主机中实际可以访问到的文件系统,包括硬盘、CD-ROM、DVD、USB存储器、磁盘阵列等。较小的Nice值表示进程的优先级较高,而较大的Nice值表示进程的优先级较低。

2024-11-19 19:15:01 1004

原创 C高级学习笔记

课程简介linux:软件安装、用户管理、进程管理、shell通用、硬链接和软连接、解压和压缩、功能性语句、结构性语句、分文件、make工具、shell脚本C高级:函数指针、指针函数、函数指针数组嵌入式系统(把软件嵌入到硬件里面)嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。linux起源查看系统版本查看操作系统版本lsb_release -a 或者-r。

2024-11-18 20:04:23 941

原创 C基础学习笔记

创建一个名为student的结构体数组,包含学号,姓名,分数,(数据类型自己定义),从终端输入学生的信息并打印分数及格的学生信息(输入3人即可)。,在结构体中可以包含若干不同数据类型的成员变量(也可以相同),使这些数据项组合起来反映某一个信息。如果成员变量本身属于另一种结构体类型,用若干个成员运算符一级级找到最低级的成员变量。不能把结构体类型变量作为整体引用,只能对结构体类型变量中的各个成员变量分别引用。再数组中,数组之间是不能彼此赋值的,结构体变量可以相互赋值。变量的存放位置在全局区(静态区)

2024-11-14 18:35:26 805

原创 C语言学习笔记

B) pa是一个指向某数组中第5个元素的指针,该元素是int型变量。D) pa是一个具有5个元素的指针数组,每个元素是一个int型指针;虽然传的是地址,但是本质是值传递,因为函数内改变的是指针变量的值。A) pa是一个指向数组的指针,所指向的数组是5个int型元素!定义:一个具有特定功能的代码片段,可以实现代码的复用;3、栈由系统自动分配,速度较快,而堆一般速度比较慢。栈是连续的空间,而堆是不连续的空间是随机分配的。C) pa [5]表示某个元素的第5个元素的值。栈获得的空间较小,而堆获得的空间较大。

2024-11-13 19:00:03 1826

原创 C语言学习笔记

/定义了一个数组指针指向二维数组a。const 常量化 :可理解为readonly(只读)指针数组大小:元素个数*指针大小=sizeof(p)0x12345678 存储 起始地址:0x100。在低地址存放低字节数据,高地址存放高字节数据。(定义时的列数,即移动三个元素的距离)数组指针的大小:8=指针大小。(只能存储,不能使用),高地址存放低字节数据。

2024-11-12 17:24:51 692

原创 C基础学习笔记---->指针

p+n / p-n :地址偏移了多少(字节)=n*sizeof(数据类型)(数据的类型的大小),指针p的指向不发生变化。(数据的类型的大小),指针p的指向不发生变化。(数据的类型的大小),指针p的指向发生变化。(数据的类型的大小),指针p的指向发生变化。两个地址之间差=两个地址之间相隔的元素个数。指针之间关系运算比较的是它指向地址的高低。再对内容+1,输出:(*p)+1。动态分配内存 合理利用空间。:指针向高地址方向移动1个。:指针向低地址方向移动1个。指针向高地址方向移动n个。野指针 2.内存泄漏。

2024-11-12 08:34:18 939

原创 C语言第一周学习总结

2024-11-09 13:42:31 195

原创 C基础学习笔记

(1)首先通过n-1次比较,从n个数中找出最小的, 将它与第一个数交换—第一趟。(2)再通过n-2次比较,从剩余的n-1个数中找出关键字次小的记录,将它与第二。使用时会报警告,因为此函数不关系数组越界问题,所以用时要自己注意 不要担心)(3)重复上述过程,共经过n-1趟排序后,排序结束。选择排序,结果最小的数被安置在第一个元素位置上。功能:将内存空间中的数据设置为0。参数:参数1:要清空的空间首地址。参数2:要设置的值 设置为0。=行数*列数*数据类型的大小。返回值:要清空的空间首地址。

2024-11-08 17:32:15 1506

原创 C语言代码 输出菱形

如果想要不输入而直接输出一个菱形的话: 下面展示底边长为5的菱形代码,获得其他底边长菱形修改sum的值即可。

2024-11-06 20:11:35 587

原创 C语言学习笔记

首先定义循环变量并赋值,然后判断是否符合终止条件,如果符合就进入循环执行语句块及增值减值语句,然后继续判断,直到不成立退出循环。根据上面的代码可以发现以下规律规律。do while循环。

2024-11-06 19:14:32 498

原创 c基础笔记

…接上文输入输出按格式进行输入输出printf;参数字符串变量变量个数取决与字符串中格式的数量scanf;参数字符串地址&变量名)注意!字符串中只能写格式格式d整型int%5d---表示要占5个格子,不足前面补空格。%05d,表示用0补空格。如果数据大于所给格子数将原样输出。c字符型charf浮点型float01f保留一位小数1flf双精度doubles字符串5。

2024-11-05 19:51:53 594

原创 C基础学习笔记

词法符号有很多字符组成的有意义的最小语法单位分类:关键字标识符运算符分隔符标点符号关键字(32个)概念系统定义的具有特殊功能的词法符号存储类型auto(自动)static(静态)extern(外部引用)register寄存器数据类型int整型char字符short短整型longfloatdoublesigned有符号unsigned无符号构造数据类型struct结构体union共用体。

2024-11-04 17:13:06 944

原创 C语言小人跑起来

【代码】C语言小人跑起来。

2024-11-01 10:30:58 95

原创 c基础学习笔记(数组 函数篇)

return会阻断代码的执行,所以一般放置在函数体最后。如果函数没有返回值,将函数名前面的类型改为void。

2024-10-31 18:44:36 152

原创 C语言基础循环语句

基础c语言循环语句 for循环 while循环 死循环

2024-10-30 19:08:46 203

原创 c基础学习笔记

2.拆分法:例:44-------->32+12------->32+8+4----->2^5 2^3 2^2----->101100。小--->大:小写字母的ascii-32。例:auto int a;\x41--->'A'--->\101---->字符A。6.二进制---->十六进制: 从右向左每四个为一组。\0: 0 ('\0'----->字符空)按照格式输出内容-------->输出在终端界面。1.二进制------------>十进制。2.十进制------------>二进制。

2024-10-29 19:33:44 575

原创 c基础学习笔记

命令行模式------------------->插入模式--------------------------------------------------->底行模式。全部替换:s/str1/str2/g 将光标所在行的全部str1替换成str2。%s/str1/str2/g ,$s/str1/str2/g 全文替换。命令:gcc hello.o -o a.out --->gcc hello.c--->生成a.out。复制文件并改名: cp 要复制的文件名(路径) 要粘贴的位置(路径)/要改的名称。

2024-10-29 08:15:46 923

空空如也

空空如也

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

TA关注的人

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