自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 vim 编辑器 代码 自动排版、多行的自动缩进、上下移动当前行

按 Esc 按键,退出 插入 模式,按 v 或者 V ,进入可视行模式,按 上 / 下键,可以选择多行,按。在粘贴了一些代码之后,vim变得比较乱,只要执行 gg=G 就能搞定。按 Esc 按键,退出 插入 模式,输入 :m + 数字 n 行。声明处,(注意,是变量的声明处,不是函数)按 Esc 按键,退出 插入 模式,按。行,n=1时,不移动,n=2时,上移1行。,向上移动 n 行,向下移动 n 行,== 自动缩进 光标所在的。5gg / 5G 跳至第5行。gd 跳至当前光标所在的。

2025-11-29 22:43:30 184

原创 vim 编译器配置,代码自动缩进

set tabstop=8 " Tab显示为8个空格(恢复默认)set shiftwidth=8 " 自动缩进使用8个空格(恢复默认)set softtabstop=4 " 退格键一次删除4个空格。set tabstop=4 " Tab显示为4个空格。set shiftwidth=4 " 自动缩进使用4个空格。set nonumber " 取消行号显示。

2025-11-19 17:41:52 812

原创 查看网络接口命令 ip addr show

接口类型状态IP地址用途lo环回接口UP本机内部通信ens33物理网卡UP且活动连接外部网络virbr0虚拟桥接逻辑DOWNKVM虚拟机网络virbr0-nicTAP设备DOWN无IP桥接的虚拟网卡。

2025-12-27 10:35:41 186

原创 Linux虚拟机,全屏文本控制台,终端间的通信测试

TTY1 和 TTY2 是Linux系统中的虚拟终端设备。它们是,用于提供文本模式的用户界面。

2025-12-08 11:32:42 280

原创 signal 函数声明 写法的演变过程

signal函数,是Unix/Linux系统调用,用于处理信号。一步步推导signal。

2025-12-01 11:24:03 168

原创 syslog 系统日志

系统的日志级别配置:大多数 Linux 发行版,通常默认是: LogLevel =或 LogLevel =:只有配置级别的日志才会被记录。如果 日志级别配置 是LOG_INFOLOG_DEBUG级别的消息将不被记录以节省磁盘空间和提高性能。

2025-11-30 23:21:43 246

原创 进程终止的 8 种方式

当 main 函数执行到 return 语句时,或者执行到函数末尾时,进程会正常终止。在多线程环境中,如果进程中的所有线程都执行完毕并从它们的启动函数返回,那么整个进程也会随之终止。如果这是进程中的最后一个线程,并且它响应了这个取消请求而退出,那么整个进程也会异常终止。(C99) 是系统调用,它们会立即使进程终止,不会进行任何清理工作。同样是在多线程环境中,如果进程中的最后一个线程(非主线程)调用了。当进程收到这些信号的默认行为是终止时,就会异常终止。不会导致进程终止,除非它是最后一个存活的线程。

2025-11-26 22:04:07 285

原创 UFS 文件系统,为什么能存储 TB 级别 大文件 ?

UFS文件系统,通过多级间接指针(一级、二级、三级)实现指数级增长的寻址能力,因此即使 inode 本身大小固定,也能支持TB 级别的大文件。

2025-11-24 10:16:07 415

原创 文件IO 和 标准IO

/ 立即输出"Before flush"终端设备(stdin/stdout)// 数据还在缓冲区,文件可能为空。// 行缓冲 - 用于终端交互。// 无缓冲 - 用于错误日志。// 退出时自动刷新所有缓冲区。从stdin读取行(不安全)// 全缓冲 - 用于文件。// 遇到换行符,立即输出。// 行缓冲,不会立即输出。读取一个字符(可能是宏)写入一个字符(可能是宏)标准错误(stderr)最低(每次都要系统调用)// 此时数据才写入文件。// 有换行符,立即输出。向stdout写入字符。

2025-11-23 11:05:31 687

原创 栈、堆、静态区的特点与区别

/ 指针在.data,字符串在.rodata。// 在.data段。// 在.data段。// 在.data段。| .data段 | 已初始化全局变量。| .rodata段 | 只读数据。

2025-11-21 23:38:26 764

原创 程序员必备的素质: linux 编程

精通2种语言,精通一门脚本,扎实的网络知识。

2025-11-19 10:09:29 117

原创 ANSi_VT ,终端控制和屏幕显示,Linux c 编程

printf "${RED}${BOLD}错误: ${RESET}%s\n" "$1" >&2。printf "${YELLOW}${BOLD}警告: ${RESET}%s\n" "$1"printf "${GREEN}${BOLD}成功: ${RESET}%s\n" "$1"printf "${BLUE}${BOLD}信息: ${RESET}%s\n" "$1"printf("\033[H");

2025-11-18 22:09:08 737

原创 俄罗斯方块游戏,stm32f103c8t6,128*160TFT屏幕

B站视频演示:

2025-11-18 21:39:57 138

原创 俄罗斯方块游戏,linux c语言编程

DeepSeek 辅助生成,测试完后,我对部分代码以及显示效果,做了优化。

2025-11-16 21:37:45 122

原创 c语言,计算器,+-*/

【代码】c语言,计算器,+-*/

2025-11-10 10:22:09 83

原创 查找文件中的单词,重复出现的次数,可以是大小写混合的单词。

【代码】查找文件中的单词,重复出现的次数,可以是大小写混合的单词。

2025-11-10 10:09:50 105

原创 51单片机的 定时器和中断系统

配置定时器和中断系统。

2023-11-20 20:58:46 99 1

原创 c语言,位运算符

逐位比较两个运算对象,两个位不同时,结果为1,两个位相同时,结果为0。逐位比较两个运算对象,只有两个位都为1时,结果才为1,否则为0。逐位比较两个运算对象,只有两个位都为0时,结果才为0,否则为1。1、反码 ~ 1变0 , 0变1。

2023-11-12 09:39:44 112 1

原创 c primer plus第14章编程练习1 ,修改答案里的for循环后,可计算天数

运行示例,输入 December,输出1月~12月的总天数。

2023-11-09 21:59:45 118 1

原创 c primer plus 第13章13.7.8 把一系列文件中的内容附加在另一个文件的末尾

qqk文件和qqL文件中的内容,附加到qqa文件中内容的末尾。附加结束后,qqa文件的内容,见下图。

2023-11-04 21:39:02 137 1

原创 c primer plus 第13章,简单的文件压缩程序,把文件压缩成原来的1/3

压缩后的文件后缀名 .red。

2023-11-03 22:22:45 153

原创 c primer plus 第10章,编程练习10.13 第6题,编写一个函数,把double 类型数组中的数据,倒序排列(从大到小),并测试该函数 。

【代码】c primer plus 编程练习10.13 第6题,编写一个函数,把double 类型数组中的数据,倒序排列(从大到小),并测试该函数。

2023-10-25 12:24:13 163 1

原创 c primer plus 编程练习题第9章9.11 第7题,答案纠正。

修改while循环中的if语句,就可以显示全部输入字符的位置。

2023-10-21 10:37:51 90 1

原创 C语言初学者,分析程序:

分号表明这是在声明函数,不是在定义函数。也就是说,这行声明了程序将使用一个名为 starbar ( ) 、没有返回值、没有参数的函数,并告诉编译器在别处查找该函数的定义。圆括号表明starbar 是一个函数名。第1个void 是函数类型,void类型表明函数没有返回值。第2个void (在圆括号内)表明该函数不带参数。

2023-10-18 12:10:25 169 1

原创 c primer plus 第8章8.11编程练习,第7题:用字符代替数字标记菜单的选项,用Q代替5作为结束输入的标记。

【代码】c primer plus 第8章8.11编程练习,第7题:用字符代替数字标记菜单的选项,用Q代替5作为结束输入的标记。

2023-10-17 17:33:47 95

原创 C语言,只读每行的首字符,以及break,switch,continue的应用场景

循环从输入中读取字符,包括按下enter键产生的换行符,注意,函数的返回值并没有赋给ch,以上代码所作的只是读取并丢弃字符。由于最后丢弃的字符是换行符,所以下一个被读取的字符是下一行的首字母。在外层的while循环中,getchar () 读取首字母并赋给ch。switch ( ) 语句,括号()中测试的表达式的值,应该是一个整数值(包括char类型)。假设用户一开始就按下enter 键,那么程序得到的首字母就是换行符。/*跳过输入的其余部分*/continue 语句,只能用于循环中。

2023-10-17 09:31:20 274

空空如也

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

TA关注的人

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