自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

没有百宝袋的哆啦A梦的博客

啥也不会,只有敲敲代码

  • 博客(20)
  • 收藏
  • 关注

原创 多进程编程

1> 在进程的创建过程,其实就是通过拷贝父进程的task_struct结构体而来的,子进程中保存了大部分的父进程的遗传基因,只需要修改少部分的内容,如子进程的进程号,子进程的父进程号。1> 0号进程:也成为 idel 进程,他是操作系统启动后执行的第一个进程,这个进程也叫空闲进程,当没有其他进程执行时,系统会默认执行该进程。1号进程和2号进程都是由0号进程创建出来的。3> 2号进程:也称kthreadd,该进程由0号进程产生,也成为调度进程,当某个就绪进程时间片轮到时,该进程负责进程的调度工作。

2024-07-31 19:48:08 893

原创 文件IO

--------------------以上三种方式必须要包含其中一种,下面的是可选的-------------------------O_EXCL:判断文件是否存在,如果存在则报错,如果文件不存在,则可以联合O_CREAT一起创建文件。功能:拷贝旧文件描述符,放入新文件描述符中,如果新文件描述符之前已经打开,则在拷贝时,默认将其关闭。一般普通文件的权限是0666 --> 0664,目录文件权限最大为0777 ->0775。这种情况下,没有新文件描述符产生,使用的是同一个文件描述符,共享同一个文件光标。

2024-07-30 18:50:07 689

原创 标准IO

【代码】标准IO。

2024-07-29 18:58:44 673

原创 标准IO

标准IO:fprint、fscanf、fputc、fgetc、fputs、fgets、fread、 fwrite、fopen、fclose、 fseek、ftell、rewind。3、提供的偏移量的宏值 SEEK_SET:文件起始位置 SEEK_END:文件结束位置 SEEK_CUR:文件当前位置。5、默认提供的文件指针: stdin:标准输入指针 stdout:标准输出指针 stderr:标准出错指针。2、标准IO操作的是文件指针,文件IO操作的是文件描述符。

2024-07-26 18:03:15 1458

原创 算法与排序算法

程序核心代码写注释、程序代码有缩进、程序代码命名规范。对于给定的不合理的输入数据,能够给出相应的处理措施。算法中每一条语句都有确定的含义,不能模棱两可。给定合理的输入数据,能够得到正确的结果。4> 归并排序:二路归并、多路归并。经济可行性、社会可行性、能够运行。O(f(n)):使用O阶记法,记录算法时间复杂度。程序执行一段时间后会自动结束。f(n) :是问题规模与执行次数之间的函数。要求时间复杂度要尽可能低。要求空间复杂度尽可能低。至少有零个或多个输入。T(n):时间复杂度。

2024-07-24 17:47:45 1069

原创 队列和二叉树

1> 队列也是操作受限的线性表:所有操作只能在端点处进行,其删除和插入必须在不同端进行2> 允许插入操作的一端称为队尾,允许删除操作的一端称为队头3> 特点:先进先出(FIFO)4> 分类:顺序存储的队列称为顺序队列链式存储的队列,称为链式队列。

2024-07-23 19:02:05 1073

原创 双向链表,循环链表与栈

3> 双向循环链表:需要将最后一个阶段的指针域指向头结点,头结点的前驱指针指向最后一个阶段。1> 参数:不需要,只需要从堆区申请出一个头结点大小的空间,就创建了一个双向链表。1> 栈:操作受限的线性表,插入和删除只能在同一端进行,不能在中间进行相关操作。3> 注意:需要使用一个遍历指针,从第一个节点出发,到最后一个节点。3> 注意:需要将所有的节点,全部删除后,然后删除头结点。2> 允许操作的一端,称为栈顶,不允许操作的一端称为栈底。4> 栈的分类:根据存储方式的不同,分为顺序栈和链式栈。

2024-07-22 20:45:41 1103

原创 单向链表

一定要从新节点出发,指向后面的节点,然后将前驱节点指向字节。需要使用一个遍历指针,将每一个节点进行遍历一遍,如果该指针指向的节点不为空,就访问其数据域,向后偏移。3> 注意:需要将要删除的节点先标记一下,头节点的指针,指向第二个节点后,将标记的节点释放。3> 注意:必须找到要插入位置的节点的前驱节点,将前驱节点当作头节点,进行头插操作。3> 注意:需要找到要删除的节点的前驱节点,将其当作头节点,进行头删逻辑。6、头节点:虚设的一个节点,数据域不存放数据元素,可以存放链表的长度。

2024-07-19 19:42:52 1167

原创 顺序表

3. 顺序表的表示方式:除了使用一个连续的内存存储顺序表外,还需要外加一个表示顺序表实际长度的变量完成。1、对于添加顺序表元素的操作而言,需要判断顺序表是否已经满了,如果满了的话,则添加失败。2、对于减少顺序表元素的操作而言,需要判断顺序表是否已经空了,如果空了的话,就减少失败。1、 判断逻辑:顺序表不为空,顺序表不满,要插入位置不能小于0,也不能大于len。1、可以在堆区申请一个顺序表,后面操作时,只需要将该顺序表的起始地址传递即可。2、每次添加的数据放入到顺序表的最后面,也就是放在len所在的位置。

2024-07-18 17:42:08 1077

原创 共用体与动态内存分配

由相同数据类型或不同数据类型构成的集合,但是,该集合中的成员共享同一块内存空间union 结构体名称成员类型1 成员变量1;成员类型2 成员变量2;。。。成员类型n 成员变量n;当程序员写程序时,可能会因为数据类型的问题,在定义变量时,导致该程序比较晦涩难懂,例如:unsigned long int ,struct Stu为了提高代码的简洁性,以及为了更加方便理解使得代码更加优雅,我们可以将这些类型重新起一个简洁好记的名字。引入了关键字 typedef。

2024-07-17 19:57:29 1205

原创 结构体

struct 结构体名称成员类型1 成员变量1;成员类型2 成员变量2;。。。成员类型n 成员变量n;注意事项:1、struct是定义结构体类型的关键字,不能省略2、结构体名称:标识符,符合命名规则,一般建议首字母大写3、成员属性使用一对花括号包裹起来4、成员类型可以是基本数据类型,也可以是构造数据类型、指针类型5、定义结束后,必须加上 分号结尾6、举个例子//姓名int age;//年龄//成绩//定义一个英雄类型。

2024-07-16 18:49:07 865

原创 Linux C语言基础 day10

例如:主函数中定义一个长度为8的数组,调用自定义函数完成输入、自定义函数完成输出、自定义函数求最大值、自定义函数完成数组的逆置。当实参使用的是数组名进行传递时,本质上传递的是数组首元素的地址。1. 一维数组的数组名,本质上是一个该数组的第一个元素的地址。// 输出逆置后的数组。虽然使用的是数组接收,但是,本质上也还是使用的是指针接收。// 自定义函数 my_strstr,实现 strstr 函数的功能。//将b里的值写入a。

2024-07-12 21:24:21 2098

原创 Linux C语言基础 day9

数据类型 * 指针名;例如:int * ptr;

2024-07-11 20:26:43 1148

原创 Linux C语言基础 day8

返回值类型 函数名(函数的形参列表){ 函数体;

2024-07-10 19:21:48 1409

原创 Linux C语言基础 day7

数据类型 数组名[常量1][常量2];char 数组名[常量];

2024-07-09 20:35:44 1439

原创 Linux C语言基础 day6

套路:将数组中的第一个先设置成当前的最值,然后拿着当前的最值与数组中的任意一个元素进行比较,如果比较过程中,不满足条件,则更新最值,直到所有数据都跟最值比较一番后,得出最值。printf("当前数组的最大值为:%d, 在数组的第%d个位置\n", max, maxi+1);2.部分初始化:初始化元素的个数,小于数组的长度,此时,默认从前面元素进行初始化,没有初始化的元素用0补齐。//更新最值中的数据。3.特殊初始化:在定义数组并初始化时,可以不用给定数组的长度,数组的长度由初始化元素个数而定。

2024-07-08 17:28:10 1390

原创 Linux C语言基础 day5

执行逻辑:先执行表达式1,然后执行表达式2,如果表达式2为真, 则执行循环体,然后执行表达式3, 然后再执行表达式2,如果还为真,则继续执行循环体和表达式3 直到表达式2为假,循环立即结束。执行逻辑: 先执行表达式,如果表达式为真,则执行循环体, 然后再执行表达式,如果还为真,则继续执行循环体, 直到表达式为假,循环立即结束,继续执行循环后面的代码。执行逻辑: 先执行循环体,然后执行表达式,如果表达式为真,则继续执行循环体 然后再执行表达式,直到表达式为假,循环立即结束。格式:while(表达式){

2024-07-05 17:30:39 1321

原创 Linux C语言基础 day4

原型:int printf(const char *format, ...(arg));函数原型:int scanf(const char *format, ...);功能:按照格式向终端输出指定内容 ----格式化输出。函数的原型:int putchar(int c);format:指定读取内容的格式。格式字符:%d, %c, %s, %f。format:要输出的内容。%u 无符号的十进制整数。头文件:#include。头文件:#include。头文件:#include。头文件:#include。

2024-07-04 17:47:34 1209

原创 Linux C语言基础 day3

位运算是针对二进制而言的,但凡涉及位运算,在计算机中都会转换成二进制来参与运算,且一般位运算都是无符号数参与运算,如果用有符号数,会涉及原码反码补码转换的问题。解析:因为k+m=3,SQR(X)=X*X,则SQR(k+m)/SQR(k+m)=SQR(3)/SQR(3)=1,a/=1为a=a/1,解析:b=0110,b2=0000,b>>1=0001;表达式 (b>>2)/(b>>1)的值是(A)

2024-07-03 17:30:03 1218

原创 Linux C语言基础 day2

打开一个文件默认的就是在命令行模式下,命令行模式一般是用来复制和粘贴代码的。逢16进1 每一位上的数字范围 0~9 a:10 b:11 c:12 d:13 e:14 f:15。因为这个运算符用来计算两个整数相除后的余数,因此它的操作数必须是整数类型。head -n test1.c 在终端查看文件内容de前n行。tail -n test1.c 在终端查看文件内容de后n行。head test1.c在终端查看文件内容,默认查看前十行。tail test1.c在终端查看文件内容,默认查看后十行。

2024-07-02 18:46:17 533 1

空空如也

空空如也

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

TA关注的人

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