自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(657)
  • 资源 (1)
  • 收藏
  • 关注

转载 这篇 MySQL 索引和 B+Tree 讲得太通俗易懂

正确的创建合适的索引,是提升数据库查询性能的基础。在正式讲解之前,对后面举例中使用的表结构先简单看一下:create table user( id bigint not null comment 'id' primary key, name varchar(200) null comment 'name', age bigint null comment 'age', gender int null comment '

2021-02-26 16:56:09 321

原创 Python零基础入门到精通学习教程2024年最新版,看完这一篇就够了。

2023年即将接近尾声,随着2024年的到来,Python即将步入他的35岁诞生。(冷知识:Python1989年诞生,Java是1991年,所以Python比Java更加历史悠久)作为当今世界上最受欢迎的编程语言。不少小伙伴都想一窥Python的美妙,却苦于没有一份系统的、科学的学习教程而止步!编程语言排行榜今天,身为一名在编程圈混迹数十年,上至字节,下至初创公司的小蓝过来为你排忧解难了,给同学们带来了一份Python入门到精通的学习教程2024年最新版。

2024-04-14 13:45:38 151

转载 字节大佬呕心沥血撰写159页的《Python零基础入门教程》在编程圈内火了!小白零基础必备,开放PDF下载!

Python在多个领域有广泛的应用,例如网络爬虫、数据分析、人工智能等。无论你是在职人员,或者是零基础的小白,也或者需要转行学习Python的读者,都建议你们可以拿过去学习一下。除了这些,Python还可用于数据分析和可视化,帮助你更好地。Python作为21世纪最伟大的发明,正在潜移默化的改变我们的生活。剔除了相对来说应用不那么广泛的冷门知识点,将最简单的部分囊括了进来,都有详细明了的介绍,是学习过程中不可多得的最佳学习资料。,可以帮助新手小白快速领略Python的魅力。此外,学习Python还能为你。

2024-04-14 13:42:38 8

转载 2024年梦幻开局!字节大佬把Python零基础文档和源码整理成了这套资料包

在开始放送这枚重量级的炸弹之前,肯定有小部分同学不知道Python是个什么玩意?简而言之,Python就是一款类似于C语言、C++、Java的编程语言,当然它位列编程热门榜第一名... ...一聊到编程,各位可能就会想起程序员这个岗位,但是Python却不完全独属于程序员,因为Python的爬虫、数据分析、自动化这些功能是我们普通人也可以用上的。Python在所有编程语言中热门榜第一。

2024-04-14 13:40:39 9

原创 Linux驱动实践:带你一步一步编译内核驱动程序

在刚才的 Kconfig 参数配置中,CONFIG_HELLO 被设置为 y,于是这句话就被翻译成: obj-y += hello,表示把 hello 驱动编译进内核。虽然文章内容很漂亮,但是不知道怎么去实践、验证。打印信息的级别有好几个,从 DEBUG 到 EMERG,这里使用的是 KERN_ALERT,方便查看打印信息。CONFIG_HELLO 可以看做一个变量,在编译的时候,这个变量的值可能是:y, n 或者 m。每一篇文章的介绍都是正确的,但是如果把很多文章放在一起看,就会发现怎么说的都不一样啊?

2024-03-21 19:57:21 903

原创 linux内核编译详解

前言Linux内核是的核心,也是整个Linux功能体现的核心,就如同发动机在汽车中的重要性。内核主要功能包括进程管理、内存管理、文件管理、设备管理、网络管理等。Linux内核是单内核设计,但却采用了微内核的模块化设计,支持内核线程以及动态装载内核模块的能力。Linux作为一个自由软件,在广大爱好者的支持下,内核版本不断更新。新的内核修订了旧内核的bug,并增加了许多新的特性。如果用户想要使用这些新特性,或想根据自己的系统定制一个更高效、更稳定的内核,就需要手动编译Linux内核。那么如何编译内核呢?

2024-03-21 19:24:21 329

原创 Linux内核编译与安装

Linux内核是一个用C语言写成的,符合POSIX标准的类Unix操作系统。内核是操作系统中最基本的一部分,提供了众多应用程序访问计算机硬件的机制。Linux内核的一大特点就是采用了整体式结构,有很多过程组成,每个过程都可以独立编译,其模块机制又湿得内核保持独立而又易于扩充。Linux发行版实在Linux内核的基础之上,与外带的应用软件和工具打包配置之后发行的版本。

2024-03-21 19:19:44 848

原创 如何查看一个进程有几个子进程

等进程查看工具来查看一个进程的子进程。这些工具提供了更直观的进程关系展示,更清晰地了解进程之间的关系。要查看一个进程有多少个子进程,一种方法是通过在命令行上使用。这个命令会列出指定父进程的所有子进程,并通过。命令计算子进程的数量。

2024-03-11 19:44:45 359

原创 SIGCHLD是什么信号

是子进程状态改变时发送给父进程的信号。父进程可以捕获这个信号,并通过调用。在 Unix 系统中,当一个子进程终止时,父进程会收到一个。函数来等待子进程状态改变,以避免僵尸进程的产生。等函数来获取子进程的退出状态、终止原因等信息。信号时,通常会在信号处理函数中调用。

2024-03-11 19:36:47 170

原创 开源新手之邮件列表

维基百科是这样定义邮件列表的: Mailing lists preceded web forums and can provide similar functionalities. 大概就是邮件列表是诞生在论坛之前提供类似论坛功能的东西。邮件列表可以分成两种,一种是公告列表,就像老板给员工群发邮件一样,另一种是讨论列表,任何人都可以发邮件给所有人,这样就好像是用邮件做了一个简易的论坛一样。那么为什么那么多的开源社区要使用邮件列表而不使用论坛呢?

2024-02-19 19:32:03 856

原创 如何正确复制CSDN文章到自己的博客

4.新建一个txt文件,把你粘贴的东西复制进去,然后再把文件名的后缀改为html,然后打开html文件,把里面的内容ctrl+A全部复制到你的CSDN编辑发布页面中.3.在该元素源代码上右键 “Copy”->“Copy element”2.按ctrl +f 找 "article_content"1.csdn 文章页面,按f12打开浏览器。

2024-02-19 10:58:34 413

原创 硬核!10分钟教你搭建一个本地版GPT4.0!

不过这还只是项目的初级版本,等待后续慢慢升级之后,使用体验应该会更佳!这个就是为什么我们可以不用账号就能直接免费使用GPT4的原因。把这个项目打包到本地电脑上,直接就能使用上原版GPT4.0。尤其是GPT3.5 16K的模型,拥有更长的上下文记忆长度。这个项目集成了很多官方放出来的GPT4免费资源和各种大模型。一是GPT4模型有时候使用会不太稳定(毕竟是免费的);(GPT4会回答是一个人,GPT3.5则会回答错误)(如果这个页面出现其他被勾选的选项,请取消勾选)我们还可以在这里切换成GPT的各种模型。

2024-02-19 10:41:49 1387 1

转载 Docker 入门教程

作者:日期:2013年发布至今,一直广受瞩目,被认为可能会改变软件行业。但是,许多人并不清楚 Docker 到底是什么,要解决什么问题,好处又在哪里?本文就来详细解释,帮助大家理解它,还带有简单易懂的实例,教你如何将它用于日常开发。

2024-02-17 16:33:12 47

原创 Windows10中用Docker优雅的拥有一个自己的Linux环境

exitdocker pslanmp容器的名称,如果没有名称,也可以使用中看到的。

2024-02-17 15:44:29 599

原创 Windows10环境下安装Docker

要想在window10中用docker必须是64位win10专业版或企业版。其他版本的windows就只能通过Toolbox实现了,非64位win10专业版或企业版的同学可以绕道了。

2024-02-17 15:43:21 410

原创 简单聊聊k8s,和docker之间的关系

随着云原生和微服务架构的快速发展,Kubernetes和Docker已经成为了两个重要的技术。但是有小伙伴通常对这两个技术的关系产生疑惑:既然有了docker,为什么又出来一个k8s?它俩之间是竞品的关系吗?傻傻分不清。学习一门技术我们要学会类比,这里我给你们打个比方:将Kubernetes与Docker的关系类比为Spring MVC与Servlet或MyBatis与JDBC的关系。Docker像是Servlet或JDBC,提供了基础的容器化技术。

2024-02-17 14:55:41 1157

原创 【C++Debug日记】Resolver error: Error: The VS Code Server failed to start,解决!!

今日正常启动vscode ssh准备编辑写写代码,结果无法连接到远端服务器,我用Xterm试了一下,发现远端服务器可以照常连接,故排除了服务器本身的连接问题;那么问题就肯定来源于VSCODE啦,故首先排除本地vscode上有问题(我用的挺正常的,连接其他服务器也都无问题),那么就是远端服务器问题啦。

2024-01-05 09:13:01 2007 1

原创 Remote-SSH XHR failed or Resolver error: Error: The VS Code Server failed to start

连接开发板或服务器后,能够ping通,也能通过Terminal进行ssh远程连接,但是VSCode中ssh无法进行远程连接。

2024-01-05 09:02:10 844

转载 ELF文件格式解析

通过以上的定义以及示例讲解,相信大家已经对ELF的文件格式有所了解了,如果想要继续深挖ELF文件的细节,大家可以参考以下这些资料。

2023-12-29 09:08:24 611

原创 LIBRARY_PATH和LD_LIBRARY_PATH区别

在您的问题中,由于出现了"cannot find -lxml2"的错误,涉及到编译阶段需要找到libxml2库文件。因此,您需要设置LIBRARY_PATH环境变量来指定编译器在链接时搜索库文件的路径。LIBRARY_PATH影响编译器在链接阶段搜索库文件的路径,而LD_LIBRARY_PATH影响程序运行时加载共享库的路径。两者分别在编译和运行时期起作用。LIBRARY_PATH和LD_LIBRARY_PATH都是用于指定动态链接库的搜索路径的环境变量,但在不同的情况下有不同的作用。

2023-12-21 15:25:25 636

原创 CFLAGS、CXXFLAGS、FFLAGS、FCFLAGS、LDFLAGS、LD_LIBRARY_PATH区别

这些环境变量可以用于在编译和链接过程中灵活地传递参数和选项,并对编译器和链接器的行为进行个性化的配置和定制。示例:将优化级别设置为最高,启用所有警告信息,并指定目标体系结构为x86-64。示例:将C++标准版本设置为C++11,并启用所有警告信息。示例:指定搜索动态链接库的路径,并链接额外的库文件。示例:将优化级别设置为最高,并启用额外的调试信息。:用于设置Fortran编译器的特定编译选项。:用于设置Fortran编译器的编译选项。:用于设置C++编译器的编译选项。:用于设置C编译器的编译选项。

2023-12-07 20:05:03 1262

原创 AddressSanitizer和LeakSanitizer有什么区别

ASan主要用于检测内存错误,如越界访问和释放后,而LSan主用于检测内存泄漏问题。它们都能够在编译时插入额外的运行时检查代码,帮助开发者发现修复内存相关问题。AddressSanitizer(ASan)和LeakSanitizer(LSan)都是用于内存错误检测的工具,它们的主要区别在于检测的问题类型和应用场景。

2023-12-07 19:51:36 768

原创 shell/bash 让vi/vim显示空格,及tab字符

这和Linux与Windows断行/换行格式有关。DOS (Windows 系统)使用的断行/换行字符为 ^M$ ,我们称为 CR 与 LF 两个符号。在这样的情况下,如果是一个 shell script 的程序文件,将可能造成“程序无法执行”的状态。因为会误判程序所下达的指令内容。在 Linux 下打开Windows的文件时,由于 DOS 的断行符号是。文件中有 TAB 键的时候,你是看不见的。,就会多了一个 ^M 的符号出来。退出List Mode。进入List Mode。显示在每行的结尾,表示。

2023-11-30 11:20:26 1509

原创 LD_LIBRARY_PATH 这个是什么

当一个可执行文件执行时,系统会搜索一系列默认的库路径,以查找程序所需的动态链接库。中指定的路径,然后再搜索默认的路径。如果在这些默认的搜索路径下都找不到所需的动态链接库文件,系统会报告动态链接库未找到的错误。环境变量允许您指定自定义的库搜索路径,以便程序可以在指定路径下找到所需的库文件。环境变量来指定自定义的库搜索路径,确保程序可以正常找到所需的动态链接库。系统默认的库路径:这些路径是操作系统预设的默认库搜索路径,通常包括。这样,每次打开新的终端时,都会自动加载指定的库搜索路径设置。

2023-11-22 10:44:09 3241

原创 c语言中*p1++和p1++有啥区别

但是产生的结果和用法是不同的,根据具体的需求选择使用合适的表达式。简而言之,这个表达式会先取出。:这是一个后缀递增运算符,它表示先使用指针。:这是一个后缀递增运算符的组合。不同,它并不会取出指针所指向的值。的当前值,然后再递增。需要注意的是,无论是。

2023-11-19 21:10:25 1424

原创 Gcov 查看代码覆盖率

打开一个文件的覆盖率报告,页面对开始有文件的基本信息描述,以 FreeRTOS 的 task.c 为例,它的有效代码行数为 921 行,共 24 个函数(几千行的文件其实也没多少嘛~)在所需要的生产覆盖率的文件中,添加编译参数,编译代码生成目标文件,同时会生成 *.gcno 文件,其中包含文件的行号等信息。程序运行完成后,可以查看每个文件的代码覆盖率情况,上面报告中展示了每个文件的行覆盖率,函数覆盖率和分支覆盖率。运行程序后,会生成一个 *.gcda 文件,里面包含代码执行次数等数据。

2023-11-01 21:24:21 1687

原创 Linux下的clock_gettime()获取系统时间跳变问题

使用CLOCK_REALTIME设置时,会存在时间跳变问题。(一般不会随意跳,但是如果存在授时、时间同步相关的操作,当前系统时间会被修改。)通过该设置获取的时钟是不稳定的(is_steady = false)。建议获取时间差或者定时任务的时候,不直接用系统时间,以免出现时间跳变。clock_gettime()函数是基于linux操作系统的。可以根据需要,获取不同要求的精确时间,通过第一个参数设置。clk_id:检索和设置的clk_id指定的时钟时间。

2023-10-27 09:08:50 1924

原创 windows上下载github上的linux内核项目遇到的问题

而linux内核工程里恰好有一些只有大小写不同的文件,在windows下只能创建其中的一个。这导致了git工具的错误。如果把这个文件删除了,git status查看你会发现少了两个大小写不同的文件。最后得出的结论是想要参与linux内核的开发,还是要用linux操作系统啊,这是不是就是大牛创建这些不兼容文件的原因呢。windows上有些文件名是无法创建文件的,比如aux,com1等,这些是系统保留的设备名。一看文件目录,一大堆的红叉叉,git status查看有一大堆的修改,可是我啥也没动啊,郁闷。

2023-10-20 21:52:23 2152 1

转载 为什么 Linux 默认页大小是 4KB

过小的页面大小会带来较大的页表项增加寻址时 TLB(Translation lookaside buffer)的查找时间和额外开销,但是也会减少程序中的内存碎片,提高内存的利用率;过大的页面大小会浪费内存空间,造成内存碎片,降低内存的利用率,但是可以减少进程中的页表项以及 TLB 的寻址时间;这种类似的场景在我们做系统设计时也比较常见,举一个不是特别恰当的例子,当我们想要在集群上部署服务时,每个节点上的资源是有限的,单个服务占用的资源可能会影响集群的资源利用率或者系统的额外开销。

2023-10-10 16:15:30 1740

原创 移位操作符的妙用

这样做的效率极快,假如定义一个num=10;执行1<<num后变成了1*2^num=1024,num的值依然为10,只是(1<<num)这个整体的值为1024.将1向左移三位,假设八进制下1的二进制为:00000001,移位后变成00000100,这时就变成了1*2^3=8;如果您想要除以2的n次方,那如果传统操作,效率就太低了,你首先要算出2的n次方,这很耗时间.右移操作符是与此相反的,右移是把二进制的数向右移位,低位舍去,高位补零,左移位操作符实际上就是把二进制的数向左移,高位舍去,低位补零.

2023-10-06 11:34:22 1505

转载 (c语言)移位操作符

/反码:11111111111111111111111111111000 (原码的符号位不变,其余位按位取反就是反码)//00000000000000000000000000001110——左移1位后(左移后补0) 14。//补码:11111111111111111111111111111001 (反码加1就是补码)//00000000000000000000000000000111——补码 7。//00000000000000000000000000000111——补码 7。

2023-10-06 11:22:45 1483

原创 Memtester框架是什么

运行 Memtester 时会对系统内存产生较高的压力,可能会影响其他正在运行的应用程序。因此,在运行 Memtester 时,请确保没有重要的任务或数据存储在系统内存中,以防止数据丢失。等待测试完成:Memtester 将开始模拟内存负载并进行测试。一旦测试完成,将会在终端中显示结果。它可以模拟内存负载,并检查是否存在内存错误或故障。如果 Memtester 发现内存错误或故障,它会在测试过程中显示相应的错误信息。表示要测试的内存大小,可以使用诸如。表示要运行的测试次数,默认为 1。

2023-10-06 11:06:34 1601

原创 Linux中getopt函数、optind等变量使用详解

最近在学习《Unix网络编程》vol2时,发现书中例子经常使用一个命令行解析getopt函数,因为。该函数是由Unix标准库提供的函数,查看命令。,根据自己摸索,遂总结出使用方法。

2023-10-05 17:18:07 1955

转载 Git 修改已提交 commit 的信息

由于 Github 和公司 Git 使用账号不一样,偶尔没注意,提交出错后就需要修改 commit 信息。执行脚本成功后,强制推送到远程。

2023-09-22 16:53:27 1561

原创 C语言中的函数openlog

这是标准的C语言系统头文件之一,用于日志记录功能。它不属于任何特定的包,而是属于C标准库(libc)的一部分。该头文件提供了在程序中使用系统日志(syslog)功能的相关函数和宏定义。函数可以设置日志选项并打开与系统日志相关联的连接。函数后,系统日志就会处于打开状态,之后可以使用。是一个系统日志函数,用于初始化系统日志功能。函数记录日志之前,通常需要调用。函数或其他相关函数记录日志。头文件,程序可以使用诸如。使用这个函数需要导入头文件。等函数来记录系统日志。函数来初始化系统日志。

2023-09-10 17:15:45 2206

原创 c语言中为什么函数传参大多数用指针类型

总的来说,指针类型参数可以实现对实参的修改和提高程序的效率。

2023-09-10 17:00:14 1832

原创 c语言中的argp_parse函数

在C语言中,argp_parse函数是argp库(命令行参数解析库)提供的函数之一,用于解析命令行参数并进行相应的处理。这就是一个使用argp_parse函数解析命令行参数的简单示例。在实际使用时,可以根据需求进一步定制选项和解析规则。函数返回值为0表示成功解析参数,非零值表示解析失败。

2023-09-10 16:58:06 2186 1

原创 sysmonitor如何使用

Sysmonitor是一个系统监控工具,可以监视系统资源的使用情况,如CPU、内存、磁盘、网络等。这些选项可以帮助调整Sysmonitor的监视范围和时间间隔等参数。这样,Sysmonitor将在系统启动时自动启动,并在终端或命令行界面中显示实时数据。

2023-09-09 10:05:05 1506

原创 libc和glibc有什么区别

libc(C Library)是一个常见的术语,指的是C语言的标准函数库,提供了许多函数和常量供C语言程序使用。在不同的操作系统中,libc可能是不同的,但是它们都实现了C语言的标准库函数。特性和功能:glibc相比于一些传统的libc实现来说,提供了更多的特性和功能,包括对国际化、线程安全、动态内存管理等方面的支持。glibc(GNU C Library)是一种常见的libc实现,是GNU项目的一部分。它是Linux系统中最常用的libc实现,也是许多其他基于Unix的操作系统所使用的。

2023-09-08 20:53:25 1635

原创 ERROR:GLOBAL_INITIALISERS: do not initialise globals to 0

一种常见的情况是,如果全局变量的初始化值为0,而它在程序的多个地方都被引用和修改,那么在编译过程中,编译器可能会生成针对该变量的额外的代码进行初始化。在一些编程语言中,全局变量的初始化值应该使用定义时的显式赋值,而不是依赖于编译器自动将其初始化为0。这是因为在一些情况下,编译器的初始化过程可能会引发一些意想不到的问题。为了避免这种情况,编译器通常会发出警告或错误,提醒程序员全局变量的初始化值不应该为0。这个错误通常出现在一些编程语言(如C、C++)的编译过程中,以帮助程序员避免一些潜在的问题。

2023-09-07 17:12:23 1034

gif图片查看器

该软件是一款很好用的gif图片查看器,不但gif,正常图片也是可以的,还可以查看pdf文件。

2018-11-05

空空如也

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

TA关注的人

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