-杀意感知-
码龄2年
关注
提问 私信
  • 博客:27,370
    27,370
    总访问量
  • 33
    原创
  • 32,993
    排名
  • 415
    粉丝
  • 0
    铁粉
  • 学习成就

个人简介:bit.syc

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:上海市
  • 加入CSDN时间: 2023-04-09
博客简介:

杀意感知的博客

查看详细资料
  • 原力等级
    成就
    当前等级
    3
    当前总分
    319
    当月
    21
个人成就
  • 获得588次点赞
  • 内容获得10次评论
  • 获得652次收藏
创作历程
  • 32篇
    2024年
  • 1篇
    2023年
成就勋章
TA的专栏
  • Linux
    11篇
  • c++
    21篇
兴趣领域 设置
  • 编程语言
    c++c语言
创作活动更多

AI大模型如何赋能电商行业,引领变革?

如何使用AI技术实现购物推荐、会员分类、商品定价等方面的创新应用?如何运用AI技术提高电商平台的销售效率和用户体验呢?欢迎分享您的看法

186人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

基础 IO(动静态库)-- 详解

这也就是为什么大部分库在提供的时候,一般是提供库文件 + 头文件,也就是为什么在使用 C 语言的时候永远都是 #include <stdio.h>,然后在写 printf 的时候直接调用,最后链接库,本质上就是因为系统在装的时候就把库文件和头文件给装了,而 C 语言的源代码就不需要在系统中了。静态库是程序在编译链接的时候把库的代码复制到可执行文件当中的,生成的可执行程序在运行的时候将不再需要静态库,因此使用静态库生成的可执行程序的大小一般比较大。今天不再是之前的说法了。3.如果你只提供静态库。
原创
发布博客 2024.11.11 ·
589 阅读 ·
19 点赞 ·
0 评论 ·
21 收藏

基础 IO(文件系统 & inode & 软硬链接)-- 详解

我们一直都在说打开的文件,磁盘中包含了上百万个文件,肯定不可能都是以打开的方式存在。其实文件包含打开的文件和普通的未打开的文件,下面重点谈谈未打开的文件。我们知道打开的文件是通过操作系统被进程打开,一旦打开,操作系统就要维护多个文件,所以它是需要被操作系统管理的。也就是说这种方式,磁盘上和内存上都有这个文件,它们不是完全一样的,内存中的文件更强调的是属性和方法,磁盘中的文件更强调的是数据,它们是通过缓冲区关联的;而普通的未打开的文件在磁盘上,未被加载到内存中,它当然也要被管理;
原创
发布博客 2024.11.06 ·
601 阅读 ·
9 点赞 ·
0 评论 ·
15 收藏

基础 IO(文件描述符)-- 详解

文件在哪呢?从广义上理解,键盘、显示器、网卡、声卡、显卡、磁盘等几乎所有的外设都可以称之为文件,因为“Linux 下,一切皆文件”。从狭义上的理解,文件在磁盘(硬件)上放着,只有操作系统才能真正的去访问磁盘。磁盘是一种永久存储介质,不会受断电的影响,磁盘也是外设之一,所以对文件的所有操作都是对外设的输入输出,简称 IO(Input、Output)。我们知道,当fopen以写入的方式打开一个文件时,若该文件不存在,则会自动在当前路径创建该文件,那么这里所说的当前路径指的是什么呢?
原创
发布博客 2024.10.31 ·
446 阅读 ·
3 点赞 ·
0 评论 ·
8 收藏

进程控制 -- 详解

思考:什么是进程替换?通过 exec* 函数,把磁盘中的其它程序(代码+数据)加载到内存中,替换当前进程的代码和数据,让页表重新构建映射关系,这期间不会创建新的进程。思考:为什么要进程替换?执行父进程的部分代码,完成特定功能。执行其它新的程序。——> 需要进行「进程替换」,用新程序的代码和数据替换父进程的代码和数据,让子进程执行。思考:操作系统是如何做到重新建立映射的呢?
原创
发布博客 2024.10.22 ·
804 阅读 ·
13 点赞 ·
0 评论 ·
16 收藏

程序地址空间 -- 详解

进程和程序有什么区别呢?加载的本质就是创建进程。那么是否必须立刻将所有程序的代码和数据加载到内存中,并创建内核数据结构建立映射关系?不是。如果在最极端的情况下,只有内核结构被创建出来了(新建状态)。当真正被调度/执行代码时,才把外设加载内存里,然后再执行代码。理论上,可以实现对程序的分批加载。如果物理内存只有 4G,有一个游戏 16G,能否运行?可以运行。CPU 无论运行多大的程序,都需要从头到尾执行每一行指令。
原创
发布博客 2024.10.13 ·
1073 阅读 ·
16 点赞 ·
0 评论 ·
19 收藏

调度算法+链式结构+命令行参数+环境变量

/ 获取环境变量// 更改或添加环境变量返回值是环境变量的内容。
原创
发布博客 2024.10.07 ·
962 阅读 ·
22 点赞 ·
0 评论 ·
19 收藏

进程概念(冯诺依曼体系结构、操作系统、进程)-- 详解

平时创建进程一般是通过 ./myproc 运行某个存储在磁盘上的可执行程序来创建。而我们还可以通过系统调用接口/函数来创建进程:fork是一个系统调用级别的函数,其功能就是创建一个子进程。我们可以通过 man 指令来查看一下 fork 函数$ man fork我们来看一下其中的返回值描述:一旦创建成功了,他会返回子进程的PID给父进程,返回0给子进程。如果创建失败的话,会把-1返回给父进程,没有子进程会被创建。
原创
发布博客 2024.10.04 ·
798 阅读 ·
11 点赞 ·
0 评论 ·
30 收藏

Linux开发工具(git、gdb/cgdb)--详解

我们调试过程中可以使用连招,断点 b + 逐过程n + 逐语句s定位到函数,同时可以结合display显示变量,watch监视,finish结束函数,until跳转等功能进行调试。当依次执行上述命令后,输入 gitee/github 的用户名和密码,在 gitee/github 上的远程仓库刷新就可以看到自己的代码了。然后我们会发现,系统把与linux相同的部分保存不变,与linux不同的内容依次出现在文档里,需要我们手动同步。再次 display 时,i 的值同样是线性递增的,与断点相同。
原创
发布博客 2024.09.21 ·
1219 阅读 ·
11 点赞 ·
0 评论 ·
30 收藏

Linux 开发工具(vim、gcc/g++、make/Makefile)+【小程序:进度条】-- 详解

是的没错,还是从上往下读,执行第一对依赖关系,但是因为第一对依赖关系中的依赖文件proc.o并不存在于当前目录,那么此时make会在当前文件中找目标文件为proc.o的依赖关系,发现依赖文件proc.s也并不存在,以此类推,最后推导发现依赖文件procc存在,就执行对应的依赖方法,在从下往上。在 C 程序中,并没有定义 printf 的函数实现,且在预编译中包含的 stdio.h 中也只有该函数的声明,而没有定义函数的实现,那么是在哪里实现 printf 函数的呢?让清理工作总是被执行!
原创
发布博客 2024.09.16 ·
1157 阅读 ·
20 点赞 ·
0 评论 ·
33 收藏

Shell的运行原理以及Linux当中的权限问题

目录的可执行权限是表示你可否在目录下执行命令。如果目录没有 -x 权限,则无法对目录执行任何命令,甚至无法 cd 进入目录,即使目录仍然有 -r 读权限(这个地方很容易犯错,认为有读权限就可以进入目录读取目录下的文件)。而如果目录具有 -x 权限,但没有 -r 权限,则用户可以执行命令,可以 cd 进入目录。但由于没有目录的读权限所以在目录下,即使可以执行 ls 命令,但仍然没有权限读出目录下的文档。
原创
发布博客 2024.08.27 ·
842 阅读 ·
26 点赞 ·
0 评论 ·
13 收藏

C++智能指针

什么是内存泄漏:内存泄漏指因为疏忽或错误造成程序未能释放已经不再使用的内存的情况。内存泄漏并不是指内存在物理上的消失,而是应用程序分配某段内存后,因为设计错误,失去了对该段内存的控制,因而造成了内存的浪费。内存泄漏的危害:长期运行的程序出现内存泄漏,影响很大,如操作系统、后台服务等等,出现内存泄漏会导致响应越来越慢,最终卡死。// 1.内存申请了忘记释放// 2.异常安全问题Func();// 这里Func函数抛异常导致 delete[] p3未执行,p3没被释放.
原创
发布博客 2024.08.26 ·
849 阅读 ·
27 点赞 ·
0 评论 ·
15 收藏

C++异常

在实际使用中,很多公司都会自定义自己的异常体系来进行规范的异常管理。因为在一个项目中,如果大家随意抛异常,那么外层的调用者基本就没办法玩了,所以在实际中都会定义一套继承的规范体系。这样大家抛出的都是继承的派生类对象,捕获一个基类就可以了。
原创
发布博客 2024.08.14 ·
848 阅读 ·
20 点赞 ·
0 评论 ·
9 收藏

C++11(下)

function是一种函数包装器,也叫做适配器。它可以对可调用对象进行包装,C++中的function本质就是一个类模板。Ret:被包装的可调用对象的返回值类型。Args…:被包装的可调用对象的形参类型。function包装器可以对可调用对象进行包装,包括函数指针(函数名)仿函数(函数对象)lambda表达式类的成员函数。public:class Pluspublic:int main()//1、包装函数指针(函数名)//2、包装仿函数(函数对象)
原创
发布博客 2024.08.12 ·
979 阅读 ·
15 点赞 ·
0 评论 ·
29 收藏

C++11(上)

链接:在 2003 年 C++ 标准委员会曾经提交了一份技术勘误表(简称TC1),使得 C++03 这个名字已经取代了 C++98 称为 C++11 之前的最新 C++ 标准名称。不过由于 C++03(TC1)主要是对 C++98 标准中的漏洞进行修复,语言的核心部分则没有改动,因此人们习惯性的把两个标准合并称为 C++98/03 标准。从 C++0x 到 C++11,C++ 标准 10 年磨一剑,第二个真正意义上的标准珊珊来迟。
原创
发布博客 2024.08.07 ·
697 阅读 ·
28 点赞 ·
0 评论 ·
15 收藏

哈希(模拟实现unordered系列容器)

/哈希结点的定义T _data;//构造函数{}
原创
发布博客 2024.07.31 ·
764 阅读 ·
26 点赞 ·
0 评论 ·
12 收藏

哈希 Hash(闭散列、开散列介绍及其实现)

链接:【翻译】unordered_map 是存储 <key, value> 键值对的关联式容器,其允许通过 key 快速的索引到与其对应的 value。在 unordered_map 中,键值通常用于唯一地标识元素,而映射值是一个对象,其内容与此键关联。键和映射值的类型可能不同。在内部,unordered_map没有对 <key, value> 按照任何特定的顺序排序, 为了能在 O(1) 内找到 key 所对应的 value,unordered_map将相同哈希值的键值对放在相同的桶中。
原创
发布博客 2024.07.29 ·
1079 阅读 ·
10 点赞 ·
1 评论 ·
26 收藏

红黑树模拟实现STL中的map与set

/ 定义红黑颜色RED,BLACKT _data;// 数据域// 用来标记节点颜色RBTreeNode(const T& data) // 构造函数{}**定义红黑树结构(KV)**==K:键值 key 的类型。T:数据的类型,如果是 map,则为 pair;如果是 set,则为 K。
原创
发布博客 2024.07.27 ·
747 阅读 ·
18 点赞 ·
0 评论 ·
27 收藏

C++红黑树

AVL树:严格平衡(左右子树高度差不超过 1),所以 AVL 树的查找、插入、删除效率高:O(logN),但在插入和删除节点后,要维持树的平衡状态,做的旋转处理还是很多的。红黑树:近似平衡(控制最长路径不超过最短路径的2倍),变了一种方式来控制树的平衡,相较于 AVL 树而言,没有那么严格。红黑树更多是一种折中的选择,它舍弃平衡二叉树的严格平衡,换取节点插入时尽可能少的调整。因为红黑树的旋转情况少于 AVL 树,使得红黑树整体性能略优于。
原创
发布博客 2024.07.25 ·
1819 阅读 ·
21 点赞 ·
1 评论 ·
40 收藏

AVL树(高度平衡二叉搜索树)

AVL 树节点是一个三叉链结构,除了指向左孩子的指针右孩子的指针,还有一个指向其父亲的指针,数据域是键值对,即 pair 对象,还引入了平衡因子,用来判断是否需要进行平衡操作。// AVL树节点的定义(KV模型)// 该节点的左孩子// 该节点的右孩子// 该节点的双亲指针// 键值对int _bf;// 该节点的平衡因子(balance factor) = 右子树高度-左子树高度// 构造函数, _kv(kv), _bf(0){}// AVL树的定义(KV模型)
原创
发布博客 2024.07.23 ·
712 阅读 ·
22 点赞 ·
0 评论 ·
29 收藏

二叉树进阶

二叉搜索树作为一种经典的数据结构,它既有链表的快速插入与删除操作的特点,又有数组快速查找的优势;情况d:找到能够替代其位置的值,也就是要满足左子树小于该值,右子树大于该值,我们可以找左子树的最大值或者右子树的最小值,然后被删除节点赋值成找到的最大值或最小值,在删除最大值或最小值节点。尽管是同一组序列,但是不同的插入顺序构造出的搜索二叉树也是不一样的,如上图所示,左边是比较正常的树,右边是极端情况下的歪脖子树。最差情况下,类似于右边的歪脖子树,此时树的高度接近于N,因此其复杂度就是:N、
原创
发布博客 2024.07.20 ·
1078 阅读 ·
8 点赞 ·
0 评论 ·
20 收藏
加载更多