摘要:
kfifo 的一些伪代码 kfifo_in 只修改 fifo->in 的值,含一个 STORE 指令,及若干 fifo->out fifo->in 的 LOAD 指令kfifo_out 相反,只修改 kfifo->out 的值,同样含一个 STORE 指令及若干 LOAD 指令把代码中的内存屏障去掉 阅读全文
摘要:
程序的机器级表示 时隔一年把 "CS:APP" 再看一遍,尤其针对栈的运行机制加深理解。 访问信息 16个通用寄存器 一个 x86 64 CPU 包含一组16个存储64位值的 。虽然是通用寄存器,但也有一些约定成俗的用法。r8 r9 ... 为80386之后扩展的8个寄存器 $rax$, 返回值 $ 阅读全文
摘要:
信息的表示和处理 在通用计算机中中, 作为最为 最小 的可寻址的内存单元,而不是访问内存中单独的位。 寻址和字节顺序 (大端法),数据最高字节部分地址在地址处,和人的感觉逻辑相似 (小端法),低字节部分在低地址处 布尔代数 TRUE FALSE NOT AND OR EXCLUSIVE OR(异或) 阅读全文
摘要:
Effective C++ Iter 3 尽可能使用 一个反逻辑的 bitwise const . 在 clang 3.8 上编译失败,编译器已经修复这个反逻辑的问题。const 成员函数只能返回 const char& 类型的变量,这就保证了对象不能被修改。 当存在 const 成员函数和 non 阅读全文
摘要:
文件和目录 Unix 所有的文件都对应一个 ,包含了一个文件所有的信息。 文件类型 普通文件 目录文件 块特殊文件 字符特殊文件 FIFO 套接字 符号链接 可以用 宏 来判断具体的文件类型,或者用 与屏蔽字 进行逻辑“与”运算,宏定义为: 文件访问权限 文件访问权限(用户)是由 S_IXXXX 等 阅读全文
摘要:
文件 IO 记录书中的重要知识和思考实践部分 Unix 每个文件都对应一个文件描述符(file descriptor),为一个非负整数,一个文件可以有多个fd, 后面所有与文件(设备,套接字等)有关操作都是围绕这个fd来的。 在shell中 `` 都为重定向符号,前者为重定向输入,后者为输出。 文件 阅读全文
摘要:
链接 可执行文件的生成 编译系统提供编译器驱动程序,包括了 预处理器,编译器,汇编器和链接器。 预处理器(cpp)将C的源程序 foo.c 翻译成一个ASCII码的中间文件 foo.i shell cpp [ args] foo.c /tmp/foo.i C 编译器(ccl),将 foo.i 翻译成 阅读全文
摘要:
core dump 某些信号的产生会导致产生core dump,包含了进程终止时的内存镜像。在某些时候这个core文件就非常的有用处,配合gdb或者lldb调试起来非常方便。 更详细的文档参考 Linux Manual Page http://man7.org/linux/man pages/man 阅读全文
摘要:
转载自 https://www.cnblogs.com/fyc119/p/7116295.html man中文手册安装 1. 下载源码 wget https://src.fedoraproject.org/repo/pkgs/man pages zh CN/manpages zh 1.5.1.tar 阅读全文