linux内核
woodsp
这个作者很懒,什么都没留下…
展开
-
linux中likely与unlikely
看内核时总遇到if(likely( )){}或是if(unlikely( ))这样的语句,最初不解其意,现在有所了解,所以也想介绍一下。likely() 与 unlikely()是内核(我看的是2.6.22.6版本,2.6的版本应该都有)中定义的两个宏。位于/include/linux/compiler.h中,具体定义如下:#define likely(x) __builtin_exp转载 2013-07-06 17:09:37 · 439 阅读 · 0 评论 -
select()函数分析(linux)
Select在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如connect、accept、recv或recvfrom这样的阻塞程序(所谓阻塞方式block,顾名思义,就是进程或是线程执行到这些函数时必须等待某个事件的发生,如果事件没有发生,进程或线程就被阻塞,函数不能立即返回)。可是使用Select就可以完成非阻塞(所谓非阻塞方式转载 2013-07-08 11:42:39 · 486 阅读 · 0 评论 -
waitpid()
waitpid系统调用在Linux函数库中的原型是:#include #include pid_t waitpid(pid_t pid,int *status,int options)从本质上讲,系统调用waitpid和wait的作用是完全相同的,但waitpid多出了两个可由用户控制的参数pid和options,从而为我们编程提供了另一种更灵活的方转载 2013-07-07 18:42:57 · 516 阅读 · 0 评论 -
Linux Call Trace原理分析
Linux Call Trace原理分析 本文介绍了在Linux环境下根据EABI标准进行call trace调试的一般性原理。本文所说的call trace是指程序出问题时能把当前的函数调用栈打印出来。本文只介绍了得到函数调用栈的一般性原理,没有涉及Linux的core dump机制。下面简单介绍powerpc环境中如何实现call trace。内核态call trace原创 2013-07-30 22:21:48 · 5905 阅读 · 0 评论 -
linux下c编程中善用backtrace解决大问题
linux下c编程中善用backtrace解决大问题程序在得到一个Segmentation fault这样的错误信息毫无保留地就跳出来了,遇到这样的问题让人很痛苦,查找问题不亚你N多天辛苦劳累编写代码的难度。那么有没有更好的方法可以在产生SIGSEGV信号的时候得到调试可用的信息呢?看看下面的例程吧!/*sigsegv.h*/#ifndef __sigsegv_h__#define转载 2013-07-31 10:30:15 · 2243 阅读 · 0 评论