05 2018 档案
摘要:应用层使用timer可以启动多个timer(每个timer管理一个目标时间),也可启用一个timer来管理多个目标时间。 多个timer时每个timer占用一部分空间,且存在多个timer同时到期的先后顺序问题(未多考虑,是否有问题待确定),可采用单个timer管理程序所有定时事件,即如何实现序列化
阅读全文
摘要:应用层除了通过setitimer/getitimer设置获取timer外,还可通过timer_create()等一系列函数实现应用层timer功能。 应用流程 The timers created by timer_create() are commonly known as "POSIX (int
阅读全文
摘要:// 段错误捕获,并打印栈信息 static void segvhandler(int sig) { #define BACKTRACE_MAX_FRAMES 100 static bool in_handler = false; printf("capture a signal: %d", sig
阅读全文
摘要:一、基础 1. import xxx和from xxx import yyy import Module #引入模块 from Module import Other #引入模块中的类、函数或者变量 from Module import * #引入模块中的所有'公开'成员 # 导入整个datetim
阅读全文
摘要:查看内存 常用的查看内存工具有:top,ps,free,/proc/meminfo,/proc/$PID/status等,一般都指定了虚拟内存占用情况,但ps或/proc/$PID/status中RSS或RSZ指定的是实际内存大小。 1)free root:~# free total used fr
阅读全文
摘要:一. 查看栈大小限制 不同系统的栈空间大小不同,可通过如下方法查看系统栈大小限制 cat /proc/1/limits 该文件列出了系统资源限制情况(ubuntu 16.04): 可知该系统中栈空间大小限制为8M。 二. 超过栈大小后段错误 三. 解决方案 对于超出栈大小的内存申请采用malloc或
阅读全文
摘要:转自:Linux Kernel UAPI 问题描述从3.5开始,Linux Kernel 里多了一个 uapi 文件夹,里面放了很多 Linux Kernel 各个模块的头文件。如果是第一次碰到,可能会对这个不是很了解。问题分析Linux Kernel 中新增的这些 uapi 头文件,其实都是来自于
阅读全文
摘要:一、数组初始化 1.1 格式 共两种格式: char buf[32] = {0}; int buf[32] = {0}; 适用于所有类型。 char buf[32] = ""; 仅适用于char,相当于定义一个‘\0’的空串。 1.2 初始化为0 数组初始化为0的方法有如下三种: 1. 全局变量和静
阅读全文
浙公网安备 33010602011771号