Linux
文章平均质量分 83
AlbertoNo1
这个作者很懒,什么都没留下…
展开
-
Linux 信号应用之黑匣子程序设计
重要 本文转载至:http://blog.jobbole.com/101619/1. 何为黑匣子程序及其必要性飞机上面的黑匣子用于飞机失事后对事故的时候调查,同理,程序的黑匣子用于程序崩溃后对崩溃原因进程定位。其实Linux提供的core dump机制就是一种黑匣子(core文件就是黑匣子文件)。但是core文件并非在所有场景都适用,因为core文件是程序崩溃时的内转载 2016-06-14 23:36:24 · 1915 阅读 · 0 评论 -
linux进程调度浅析
操作系统要实现多进程,进程调度必不可少。有人说,进程调度是操作系统中最为重要的一个部分。我觉得这种说法说得太绝对了一点,就像很多人动辄就说"某某函数比某某函数效率高XX倍"一样,脱离了实际环境,这些结论是比较片面的。 而进程调度究竟有多重要呢? 首先,我们需要明确一点:进程调度是对TASK_RUNNING状态的进程进行调度(参见《linux进程状态浅析》)。如果进程不可执行转载 2016-10-01 00:36:46 · 320 阅读 · 0 评论 -
eventfd 函数使用介绍
从Linux 2.6.27版本开始,新增了不少系统调用,其中包括eventfd,它的主要是用于进程或者线程间的通信(如通知/等待机制的实现)。函数原型: #include /* * function: 创建eventfd * @initval: 信号量的初始值 * @flags: (2.6.27以上内核有效)可以设置一下标志位,如果是2.6.26或之前版原创 2017-06-24 00:08:00 · 4257 阅读 · 2 评论 -
epoll 机制介绍
epoll - I/O event notification facility 在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。 相比于select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。因为在内核中的select实现中,它是采用轮询来处理的,轮询的fd数目转载 2017-06-23 23:45:07 · 336 阅读 · 0 评论 -
运行时(动态)加载
动态库的加载涉及到4个API接口:打开动态库(dlopen)、查找符号(dlsym)、错误处理(dlerror)以及关闭动态库(dlclose),程序可以通过这几个API对动态库进行操作。1.dlopen() dlopen()函数用来打开一个动态库,并将其加载到进程地址空间,完成初始化的过程,它的C原型定义为:void * dlopen(const char *file...原创 2018-10-06 19:02:49 · 853 阅读 · 0 评论