随笔分类 - Linux
摘要:管道 管道是由内核管理的一个缓冲区。管道的一端连接一个进程的输出。这个进程会向管道中放入信息。管道的另一端连接一个进程的输入,这个进程取出被放入管道的信息。一个缓冲区不需要很大,它被设计成为环形的数据结构,以便管道可以被循环利用。当管道中没有信息的话,从管道中读取的进程会等待,直到另一端的进程放入信
阅读全文
摘要:使用mmap映射内存需要对文件有读权限。 打开文件时,需要使用O_RDWR标志,不能以只写模式打开文件。
阅读全文
摘要:Linux源码中include/linux/list.h封装了双向链表的数据结构。 网上实现双向链表的方式大抵相同,都是定义一个struct Node表示链表的节点,Node结构体包含指向节点数据的指针,和指向节点的next和pre指针: 1 struct Node { 2 void *data;
阅读全文
摘要:
使用perf工具以及flamegraph将调试的程序运行栈以及在每个函数中停留的时间以火焰图的形式展现出来,以可视化的方式进行调试。
阅读全文
使用perf工具以及flamegraph将调试的程序运行栈以及在每个函数中停留的时间以火焰图的形式展现出来,以可视化的方式进行调试。
阅读全文
摘要:在一些系统调用中需要指定时间是用CLOCK_MONOTONIC还是CLOCK_REALTIME。 CLOCK_MONOTONIC是monotonic time,而CLOCK_REALTIME是wall time。 monotonic time字面意思是单调时间,实际上它指的是系统启动以后流逝的时间,
阅读全文
摘要:1. cacheline对齐 避免读取的数据跨越2个cacheline,结构体可以cacheline对齐,连续的数组可以尝试首地址cacheline对齐,但可能造成浪费。 2. 分支预测 可以使用likely/unlikely这样的宏,提高cacheline命中的概率。 存在多个条件判断时,根据几率
阅读全文
摘要:tar.xz不能用tar -xvzf解压。。 xz -d 文件名 将.tar.xz文件解压成.tar文件 再tar xvf 解压.tar文件
阅读全文
摘要:以读或写打开一个FIFO会阻塞到另一端也打开。 当open一个FIFO时,非阻塞标志(O_NONBLOCK)会产生下列影响: 没有指定O_NONBLOCK,只读open要阻塞到某个其他进程为写而打开这个FIFO为止。类似的,只写open要阻塞到某个其他进程为读而打开它为止。 如果指定了O_NONBL
阅读全文
摘要:1 #ifndef PROCESS_LOG_H 2 #define PROCESS_LOG_H 3 4 #include <string> 5 #include <sstream> 6 #include <cstring> 7 8 #include <fcntl.h> 9 #include <sys
阅读全文

浙公网安备 33010602011771号