简单生活 发表于 2015-1-16 15:15:16

带来一篇Linux操纵体系内核中的指针和毛病值

如果你让他去用linux搭建一个web服务器,做一个linux网关,他就什么都不会了.他们把时间都浪费在了版本的转换上了.
在内核的代码和驱动程序中常常见到ERR_PTR,IS_ERR,PTR_ERR这三个内联函数。
很多的内核函数必要前往一个指针,可是函数的挪用大概失利,一样平常我们处置如许的情况都是前往一个NULL指针,就像malloc或kmalloc在没有取得指定的空间请求时的前往值一样。可是偶然我们想晓得招致函数失利的缘故原由,可是前往NULL就显得信息不敷。因而有些函数前往一个实践的毛病编码以便对引发毛病的缘故原由做一些处置。良多内核接口经由过程把毛病值编码到一个指针值中来前往毛病信息。当处置如许的函数时,判别是不是乐成挪用就不克不及是复杂的和NULL举行对照。为了便利利用如许的范例接口,2.6的内核在linux/err.h中完成了三个内联函数:
inlinevoid*ERR_PTR(longerror)
{
return(void*)error;
}
前往指针范例的函数能够经由过程这个函数来前往一个毛病值。这里的error是一般的负的毛病编码。挪用者可使用IS_ERR来反省所前往的指针是不是是一个毛病编码。
inlinelongIS_ERR(constvoid*ptr)
{
return(unsignedlong)ptr>(unsignedlong)-1000L;
}
假如必要实践的毛病编码,能够经由过程PTR_ERR函数提取
inlinelongPTR_ERR(constvoid*ptr)
{
return(long)ptr;
}
只要在IS_ERR前往真的时分才干利用PTR_ERR

</p>
使用gcc或g++进行编译,使用gdb进行调试;

透明 发表于 2015-1-18 15:45:25

随着IT从业人员越来越多,理论上会有更多的人使用Linux,可以肯定,Linux在以后这多时间不会消失。

飘灵儿 发表于 2015-1-24 12:22:23

得到到草率的回答或者根本得不到任何Linux答案。越表现出在寻求帮助前为解决问题付出的努力,你越能得到实质性的帮助。

深爱那片海 发表于 2015-2-1 12:20:56

随着实验课程的结束,理论课也该结束了,说实话教OS的这两位老师是我们遇到过的不错的老师(这话放这可能不太恰当).

admin 发表于 2015-2-7 06:39:16

Linux只是个内核!这点很重要,你必须理解这一点。只有一个内核是不能构成一个操作系统的。

活着的死人 发表于 2015-2-20 23:54:37

Linux是参照Unix思想设计的,理解掌握Linux必须按照Unix思维来进行。思想性的转变比暂时性的技术提高更有用,因为他能帮助你加快学习速度。

灵魂腐蚀 发表于 2015-3-6 19:37:18

下面看看一个让人无法回答的问题:“救命各位高手,向你们请教一些问题:如何在Linux下配制HTTP、FTP、Samba、DNS、DHCP、Sendmail服务器,谢谢”这样的问题。

小魔女 发表于 2015-3-13 08:07:13

在系统检测不到与Linux兼容的显卡,那么此次安装就可能不支持图形化界面安装,而只能用文本模式安装等等。

分手快乐 发表于 2015-3-20 17:09:20

Linux?最大的优点在于其作为服务器的强大功能,同时支持多种应用程序及开发工具,所以Linux操作系统有着广泛的应用空间。
页: [1]
查看完整版本: 带来一篇Linux操纵体系内核中的指针和毛病值