随笔分类 -  系统编程

摘要:文件系统 inode 其本质为结构体,存储文件的属性信息。如:权限、类型、大小、时间、用户、盘块位置(指向内容存储的磁盘位置)、引用计数等。也叫做文件属性管理结构,大多数的inode都存储在磁盘上。 近期使用的inode会被缓存到内存中。创建硬链接时,这些链接有相同的inode(不同的dentry) 阅读全文
posted @ 2022-05-18 19:19 Pannnn 阅读(293) 评论(0) 推荐(0) 编辑
摘要:文件描述符 内核用三个相关的数据结构来表示打开的文件: 描述符表。每个进程有它独立的描述符表,它的表项是由进程打开的文件描述符来索引的。每个打开的描述符指向文件表中的一个表项。 文件表。打开文件的集合是由一张文件表来表示的,所有的进程共享这张表。每个文件表的表项组成包括当前的文件位置、引用计数、文件 阅读全文
posted @ 2022-04-22 16:29 Pannnn 阅读(109) 评论(0) 推荐(0) 编辑
摘要:Makefile 命名:makefile / Makefile 一个规则 目标:依赖条件 (一个tab)命令 hello:hello.c gcc hello.c -o hello 若想生成目标,检查规则中的依赖条件是否存在,如不存在,则寻找是否有规则用来生成该依赖文件。 检查规则中的目标是否需要更新 阅读全文
posted @ 2022-04-15 10:09 Pannnn 阅读(20) 评论(0) 推荐(0) 编辑
摘要:gdb调试工具:前提是有源码,对文件进行编译时增加-g参数。加了这个参数后的编译文件会大一些,是因为增加了gdb的调试内容。 使用时:gdb a.out。 基本命令: list n: 列出第n行源码 break n: 在第n行设置断点 run: 运行程序直到断点 next: 下一条指令,会越过函数 阅读全文
posted @ 2022-04-12 21:59 Pannnn 阅读(78) 评论(0) 推荐(0) 编辑
摘要:静态库 静态库名字以lib开头,以.a结尾。 静态库制作步骤: 写好源代码。 编译源代码生成.o文件。 gcc -c add.c -o add.o gcc -c sub.c -o sub.o 制作静态库 ar rcs libname.a add.o sub.o ... 使用静态库: gcc test 阅读全文
posted @ 2022-04-12 16:55 Pannnn 阅读(31) 评论(0) 推荐(0) 编辑
摘要:gcc编译参数 -I:指定头文件所在目录位置。 gcc hello.c -o hello -I ./hellodir -c:只做预处理、编译、汇编。得到二进制文件。 -g:编译时添加调试文件,用于gdb调试。 -Wall:显式所有警告信息。 -D:向程序中动态注册宏定义。 阅读全文
posted @ 2022-04-11 19:52 Pannnn 阅读(75) 评论(0) 推荐(0) 编辑
摘要:文本模式:esc进入命令模式 文本模式不能直接进入末行模式 命令模式按':'进入末行模式 末行模式: w:保存 q:退出 esc esc:退回命令模式 执行末行命令后回到命令模式 跳转到指定行:行号,如:88 命令模式进入文本模式: i:插入光标前一个字符 I:插入行首 a:插入光标后一个字符 A: 阅读全文
posted @ 2022-04-11 17:24 Pannnn 阅读(42) 评论(0) 推荐(0) 编辑
摘要:上 Ctrl-p previous 下 Ctrl-n next 左 Ctrl-b backward 右 Ctrl-f forward Del Ctrl-d delete Home Ctrl-a the first letter End Ctrl-e end 清除整行 Ctrl-u 删除光标到行末 C 阅读全文
posted @ 2022-04-10 18:12 Pannnn 阅读(153) 评论(0) 推荐(0) 编辑

-->
点击右上角即可分享
微信分享提示