摘要: 文件系统 文件存储 首先了解如下文件存储相关概念:inode、 dentry(d : dir, entry)、 数据存储、文件系统。 inode 其本质为结构体,存储文件的属性信息。如:权限、类型、大小、时间、用户、盘块位置……也叫作文件属性管理结构,ls 列出的信息也保存在 inode 中, 大多 阅读全文
posted @ 2019-02-24 22:58 狂奔~ 阅读(633) 评论(0) 推荐(0) 编辑
摘要: strace + 运行的程序,可以查看程序运行的过程中调用的系统函数 read、write函数常常被称为Unbuffered I/O。指的是无用户及缓冲区。但不保证不使用内核缓冲区。 阅读全文
posted @ 2019-02-23 23:32 狂奔~ 阅读(1004) 评论(0) 推荐(0) 编辑
摘要: 输出错误,errno是默认的全局变量 错误处理函数: 错误号:errno perror函数: void perror(const char *s); strerror函数: char *strerror(int errnum); 查看错误号: /usr/include/asm-generic/err 阅读全文
posted @ 2019-02-23 18:14 狂奔~ 阅读(230) 评论(0) 推荐(0) 编辑
摘要: 常我们在Makefile中会定义一些变量,方便Makefile的修改维护src = main.c func1.c func2.cCC = gcc #arm-linux-gccCPPFLAGS : C预处理的选项 如:-ICFLAGS:C编译器的选项 –Wall –g -cLDFLAGS :链接器选项 阅读全文
posted @ 2019-02-23 17:19 狂奔~ 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 1.使用命令:gcc demo.c -o app -g 生成app 2.gdb app 3.list命令,列出代码,后面可以使用l代替list 4.输入b + 行号,在对应的行号设置断点,b + 行号 if 。。。设置条件断点 5.info b 可以查看断点信息 6.可以取消断点 disable + 阅读全文
posted @ 2019-02-23 15:43 狂奔~ 阅读(217) 评论(0) 推荐(0) 编辑
摘要: 装饰器:本质就是函数,用来给其他函数增加 附加功能 原则: 1.不修改被修饰函数的源代码 2.不修改被修饰函数的调用方式 装饰器 = 高阶函数 + 函数嵌套 +闭包 高阶函数: 1.函数的参数是一个函数名 2.函数的返回值是一个函数名 3.满足以上两个条件中的一个就是高阶函数 以上说明高阶函数一个人 阅读全文
posted @ 2019-02-22 18:54 狂奔~ 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 静态库:复制静态库作为程序代码段的一部分,在可执行程序运行前就已经加入到执行码中, 成为执行程序的一部分 1.优点:将函数库中的函数本地化,寻址方便,速度快,等于字典一函数使用效率 2.缺点:笑话系统资源较大,每个进程使用静态库都要复制一份,无端浪费内存 3.使用场景:多用于核心程序,保证时效性,可 阅读全文
posted @ 2019-02-21 23:05 狂奔~ 阅读(264) 评论(0) 推荐(0) 编辑
摘要: 浅拷贝 深拷贝 阅读全文
posted @ 2019-02-21 14:31 狂奔~ 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 迭代器: 生成器:这种数据类型自动实现了迭代器协议,其他数据类型要调用内部的iter方法, 所以生成器就是可迭代对象 python中有两种方式提供生成器 1.生成器函数:用yield代替return函数返回,yield 一次返回一个结果,在每个结果中间挂起函数状态, 以便下一次从它离开的地方继续执行 阅读全文
posted @ 2019-02-21 08:46 狂奔~ 阅读(233) 评论(0) 推荐(0) 编辑
摘要: 命令模式 文本模式 末行模式 vim基础操作 进入插入模式: i: 插入光标前一个字符 I: 插入行首 a: 插入光标后一个字符 A: 插入行未 o: 向下新开一行,插入行首 O: 向上新开一行,插入行首 进入命令模式: ESC:从插入模式或末行模式进入命令模式 移动光标: h: 左移 j: 下移 阅读全文
posted @ 2019-02-19 22:45 狂奔~ 阅读(352) 评论(0) 推荐(0) 编辑