自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Linux环境编程第六天笔记--system-V IPC

消息队列、共享内存和信号量统称为system-V IPC,在系统中它们都使用key(键值)作为唯一标识,它们都是持续性资源。即被创建后不会因为进程的结束而消失,除非调用特殊的函数或命令删除。进程每次打开一个IPC对象,都会获得表征这个对象的ID,IPC的key是唯一的,ID是可变的。

2026-02-01 17:04:40 508

原创 Linux环境编程第五天笔记

kill 是一个发送信号的系统调用,也是是终止进程的命令。返回值:成功:返回0;失败:返回-1;​sig 参数:信号编号。

2026-01-30 12:57:00 657

原创 Linux环境编程第四天笔记

通过。

2026-01-28 12:52:26 519

原创 Linux环境编程第三天笔记

系统文件I/O是Linux内核提供的系统调用函数,无缓冲机制,直接与内核交互。标准文件I/O是基于C标准库,实现的函数,在用户空间维护缓冲区效率:标准I/O > 系统文件I/O。

2026-01-21 20:57:47 577

原创 Linux环境编程第二天笔记

fork()会使得进程本身被复制,父子进程几乎一模一样。被复制的实际的UID和GID,以及有效的UID和GID所有的环境变量进程组ID和会话ID当前的工作路径,除非用chdir()修改打开的文件信号响应函数整个内存空间、包括栈、堆、数据段、代码段、标准I/O的缓冲区没被复制的进程的PID记录锁挂起的信号。子进程会从fork()返回值后的下一逻辑语句开始执行。父子进程相平等,并发执行,无法确定谁先谁后。

2026-01-20 19:10:48 548

原创 Linux环境编程第一天笔记

是存储在磁盘上的静态指令集合和数据集合,是完成特定任务的代码问价,不占用系统运行资源,只占有磁盘资源。可执行文件后缀:在Linux中可执行文件多的类型是ELF(✔)在Linux中ELF就是可执行文件(×)ELF文件类型:可执行文件:可被直接运行的文件;可重定位文件:编译器编译过程中生成的中间文件(.o,.a);共享目标文件:可被多个程序共享调用的库文件(Linux下的.so文件)(没有main());核心转储文件:程序崩溃时生成的二进制文件;

2026-01-19 13:42:25 522

原创 C++的第十五天笔记

使用static修饰全局变量时,这个变量的链接性就会变成内部的,即只允许当前源文件访问。如果在两个不同的文件中定义两个名称相同的全局变量(即使省略extern),程序会报错,即使省略extern。因为其违反了单定义规则,但如果其中一个使用static修饰为静态变量,使用了static的文件会无视掉外部的同名变量。

2025-12-14 21:24:11 271

原创 C++的第十四天笔记

C++允许同一标识符被声明多次,但只能被定义一次。C++提供了两种声明。定义声明和引用声明。引用声明使用关键字extern,且不进行初始化,否则声明为定义,会分配空间。如果要在多个文件种使用外部变量,只需在一个文件中包含该变量的定义,但在使用该变量的其他所有文件中,都必须使用extern声明它。注:可以有多个变量的名称相同,例如不同函数中声明的同名变量是彼此独立的。另外,局部同名变量可以隐藏全局同名变量。

2025-12-11 21:40:19 420

原创 C++的第十三天笔记

通过 static_cast 等显式转换,获得同数据大小不同数据类型的数据,使得新数据与目标函数的匹配度最高。//A函数//B函数...//按优先级来看与A更匹配// char→int(提升)// float→double(提升)​//B函数提升转换,A函数标准转换,提升转换优先级高...

2025-12-10 20:54:20 685

原创 C++的第十二天笔记

默认参数指当函数调用中省略了实参时自动使用的一个值。设置默认参数需要通过函数原型。//语法:void printFocal(double fo=2.0, ostream& os = cout);//fo的默认值为2.0,os的默认对象是cout。默认参数只能写在 “函数声明” 里,定义里不能重复写。默认参数必须 “从右往左连续指定”,不能跳过中间参数。// 可以→ 编译报错调用时,默认参数的位置不能 “跳过”,要按顺序传参...func(5);

2025-12-07 21:32:22 563

原创 C++的第十一天笔记

使用const可以避免无意中修改数据的编程错误;使用const使函数能够处理const和非const实参,否则只能接收非const数据(前提:函数参数为引用 / 指针);使用const引用使函数能够正确生成并使用生成的临时变量。

2025-12-06 17:49:06 478

原创 C++的第十天笔记

编译时将函数调用直接替换为函数体的代码,避免函数调用带来的栈帧创建 / 销毁、参数传递等开销。(类似于宏展开)内联函数运行速度比常规函数快,代价是需要占用更多内存。(内联函数比较适用于运行时间短的函数)使用内联函数需要再函数声明和函数定义前面添加关键字inline。 // 声明时加 inline(推荐) inline 返回值类型 函数名(参数列表); ​ // 定义时加 inline(需确保声明和定义一致) inline 返回值类型 函数名(参数列

2025-12-04 21:09:42 482

原创 C++的第九天笔记

在C/C++中多维数组做参数的时候必须明确二维及以上的大小,第一位的大小可省略。例如://注意[]优先级高于*如果在形参中写上了行数,调用函数时没有强制的行数限制。编译器会无视它。

2025-12-03 21:39:10 736

原创 C++的第八天笔记

函数分为两类:有返回值的函数,无返回值的函数。C++对于有返回值的函数有一定限制,不能是数组,但可以将数组作为结构体或是对象的组成部分返回。返回类型若不匹配,编译器会报错,除非满足隐式类型转换规则。

2025-12-02 22:09:58 560

原创 C++的第七天笔记

不接受任何参数的cin.get()返回输入流中的下个字符,类似于C语言中的getchar(),但是cin.get()返回int,而不是读取的字符。cout.put()类似于C语言中的putchar(),不过其参数类型不是int,而是char。当函数达到EOF时,cin.get()将返回一个符号常量表示的特殊值,通常EOF等于-1,但并不需要实际的值,直接使用EOF即可。char ch;//初始化chwhile(cin.fail=false)//判断是否到达文件尾cout<<ch;

2025-12-01 22:26:37 523

原创 c++的第六天笔记

C++只保证在一条语句执行完毕之后,递增(递减)运算符执行完毕。所以不要在一条语句里面多次使用递增或递减。//不能保证执行过程中x是否递增,只保证执行完毕后x+2。

2025-11-29 17:17:38 814

原创 C++的第五天笔记

指针和字符串C++中字符串的输出和字符串地址的输出。​// 输出字符串// 输出​//强转为 void* 输出地址// 输出类似0x7ffee3b7e7ab//同上在C++中,字符串的字面值被视为只读常量,不允许修改,否则会触发未定义行为,早期允许用 char* 指向字符串字面值,(语法不报错,但修改仍非法);C++11 及以上标准更严格,推荐用 const char* 显式指向。当你直接用结构体变量访问成员时,用句点运算符 .;

2025-11-28 18:35:48 233

原创 C++的第四天笔记

结构体是用户定义的类型,而结构声明定义了这种类型的数据属性。//结构体定义//也可以使用std:string name;C++允许声明结构体变量的时候省略struct//结构体变量声明外部声明可以被其后面的任何函数使用,内部声明只能被该声明所属的的函数使用。C++不提倡使用外部变量,但提倡使用外部结构声明。版本结构体初始化所有标准struct Person p = {"张三", 20};C++11 及以上struct Person p{"张三", 20};

2025-11-27 18:39:59 291

原创 C++的第三天笔记

sting是C++的一种处理字符串的方式,要使用string类必须包含头文件string,string类位于命名空间std里面。在很多方面使用string对象的方式和和使用字符数组的方式相同,它和字符数组的主要区别是:可以将string声明为简单变量,而不是数组。类的设计让程序能够自动处理string的大小,例如在程序读取str1的时候,自动调整str1的长度,,未被初始化的string对象长度自动被设置为0.

2025-11-26 16:02:19 623

原创 C++的第二天笔记

类是用户定义的数据类型,类描述了一种数据类型的全部属性,对象是根据这些描述创建的实体如:CHAR_MAX——char的最大值。CHAR_MIN——char的最小值。double特性DBL_MAX——最大值DBL_MIN ——最小值DBL_MANT_DIG——尾数位数//这些表示 1.0 与大于 1.0 的最小可表示值之间的差// 用于浮点数比较的容差。

2025-11-25 17:01:39 251

原创 C++的第一天笔记

1.C++程序必须包含一个main()函数。2.C++注释以开始,以行尾结束。C++也能识别C的注释。

2025-11-24 20:38:50 765

原创 C中的常量和变量

注:未初始化的变量是内存中的残留数据,访问其被称为UB(未定义行为)变量是内存中的一块存储空间(栈内存),用于存放可能变化的数据。批量定义:同类型可一起定义(如int a=5,b=3,c;由字母或下划线开头,由字母,数字,下划线组成(区分大小写)建议:变量名用小写字母和下划线,常量名用大写字母和下划线。存储位置:常量通常存放于数据段或代码段(只读)初始化:定义是赋值或者先定义再赋值。不能与关键字或者预定义标识符重名。变量名的命名规则(标识符规则)定义格式: 数据类型 变量名。变量是程序运行中可变的值。

2025-09-05 19:36:15 206

原创 Linux用户和用户组(1.用户和用户组的介绍与用户的基础命令)

计算机通过用户名和密码识别用户,Linux新建用户后必须设置密码(尤其是远程访问时,安全性要求更高)。语法:[sudo] userdd [选项] 用户名(root账户下不需要sudo0)常用选项:-d指定家目录 ,-m自动创建家目录 ,-g指定主用户组 ,-G指定附属组。选项:-l 锁定账户,-u解锁账户,-e 强制下次登录修改密码,-d使账户无口令。选项:-g 修改主组,-G修改附属组,-s修改登录shell,-u修改UID。语法:[sudo] usermod [选项] 用户名。

2025-09-05 19:14:02 142

原创 EasyX 图形库文字绘制笔记2

注:代码是我写的,电子笔记是豆包帮我整理的,推荐结合注释看代码。

2025-07-29 20:49:57 348

原创 EasyX 绘图基础笔记1

坐标轴:x 轴向右递增,y 轴向下递增(注意:代码中 “y 向左增大” 表述有误,实际是向下增大)。功能:将设置的背景色应用到窗口(必须调用才生效)。额外参数:最后两个参数为圆角的宽度和高度(如。(包含 EasyX 最新绘图 API)(等待键盘输入,防止窗口一闪而过)。功能:创建指定大小的绘图窗口,如。(使用 RGB 值自定义颜色)。创建 480×480 的窗口。(需在绘制填充图形前调用)。表示 10×10 的圆角)。为对角线的矩形的内接椭圆。(带边框 + 填充)(带边框 + 填充)

2025-07-27 12:03:59 435

原创 easyx环境配置(包括下载visal studio 2022 的教程)

如果只需要普通的C和C++学习的话,只勾选下面这个,语言包和安装路径根据自己需求自己决定改还是不改。打开软件Visual Studio 2022(应用里面找软件,此时桌面上的只是安装用的的程序)如果没有解决资源管理器,点上面的视图,里面第一行就是打开解决资源管理器。再点这个(文档自己决定要还是不要,官网上也可以在线阅览的)等待环境下载(下载结束后有的电脑可能需要重启一下软件)有微软账号的可以直接登录,没有的选择注册或者跳过登录。写一个文件名,点创建,创建之后是这样的。选择右边的空项目,然后点下一步。

2025-07-27 12:01:54 329

原创 计算机基础和C的简史

硬件:物理部件:如:cpu(控制+计算)、内存(临时存储数据)、外存(永久存储:如硬盘),输入设备(键盘,鼠标)输出设备(显示器、打印机)网络(数据传输)主函数:main()是程序的唯一入口,一个.c文件只有一个main函数,这个函数不能被调用,建议放在所有函数最下面。特点:简洁高效,支持底层硬件操作,可移植性强,适合结构化编程,生成结构化编程,生成代码质量高执行快。标准:C89(ANSIC)→C90(ISO)→C99→C11→C18→C23()最新。高级语言:(c/c++,java等,需编译器翻译)

2025-07-22 07:17:36 365

原创 linux其他实用指令

echo "字符串" >> 文件路径 ——追加写入(即写到文件的最后面)语法:echo "字符串" > 文件路径 ——覆盖写入。|(管道):将前面一个命令的输出作为后面一个指令的输入。echo:输出或写入字符串。which:查找指令位置。语法:指令1 | 指令2。linux其他实用指令。

2025-07-21 22:27:33 216

原创 Linux内容搜索和查找指令

grep -n '0-9'$ /proc/cpuinfo —— 解释:匹配0到9(也可以A-Z,a-z这种)参数:类型:按文件类型查找,(如d:目录;参数:+/- 单位:例:+3M——在检索路径中查找超过3M的文件文件。grep -n '^cp' /proc/cpuinfo —— 解释:匹配以cp开头的字符序列。选项: -iname;参数:文件名: 按名称查找(忽略大小写)参数:文件名 :按名称查找(区分大小写)语法:grep [ 选项] 要查找的字符 文件路径。选项:-c 从统计文件个数,返回一个数字。

2025-07-21 22:27:06 378

原创 Linux文件内容查看指令

cat:一次性显示文件的全部内容(适合小文件)head -n 文件路径:显示文件前n行的内容(默认10行)tail -n 文件路径:显示文件后n行的内容(默认10行)方向键:上下移动行。选项:选项 -n :显示行号。more :分页查看大文件(仅支持向下翻页)选项:-m :显示当前行范围。* less:分页查看大文件。操作:空格键:翻一页。操作:空格:向下翻页。

2025-07-10 19:04:25 272

原创 Linux文件操作指令

touch:创建空文件(若文件已存在,则更新修改时间)可创建单文件和指定路径下批量创建。重命名: mv 旧名 新名。rm : 删除文件/目录(谨慎使用,删除后难恢复)-r : 递归复制目录(必须加,否则无法复制目录)cp : 复制文件或目录(相当于拷贝+粘贴)-r :递归删除(从外往里找,从里往外删)-i : 若目标文件已存在,会交互是否覆盖。例:(此处未移动成功是因为权限不够)格式:移动:mv 原路径 目标路径。例:-ri(递归删除+交互)-f:强制删除,不提示。

2025-07-09 19:11:16 185

原创 Linux的目录操作指令

以上可以组合使用(顺序不影响),如:-latr(以列表显示所有文件,按时间反向排序,最新在后)-a:显示所有文件,包括隐藏文件(隐藏文件以.开头)-l:以长文件显示文件或目录(默认不含隐藏文件)-t:按修改时间顺序排序(最新在前)cd .. 切换到上一级目录(等价于cd ../)* mkdir:创建目录(可以创建单个或者多个)选项:-p :创建多层嵌套目录(父目录不时自动创建)cd 目录路径 切换到指定目录。* cd:切换目录。

2025-07-09 18:58:11 266

原创 Linux的文件系统的简单认识

家目录,存放当前系统下所有用户对应的权限(Linux写的代码一般放到home下,但是如果使用的是虚拟机,则放到Windows下,因为虚拟机容易崩,不稳定)特殊符号:..表示上一级目录(切换到上一级目录为cd ../)(前面可略写为cd ..)(同理切换为上两级为cd ../../)(可略写为cd ../..):存放硬件设备对应的文件(操作/dev下的文件,相当于操作硬件,对于没有一定经验的选手暂时只要访问不要操作)相对路径:以当前的目录为起点(./)简化描述(前面的./写的时候可略)

2025-07-08 21:47:27 298

原创 初学者Linux快捷键使用指南

Ctrl + S 锁定Linux终端上的内容,此时无法对终端操作。Ctrl + Shift + 放大Linux终端的显示字体。Ctrl + Alt + T 打开新的Linux终端窗口。

2025-07-03 08:13:45 464

空空如也

空空如也

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

TA关注的人

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