当前位置:  技术问答>linux和unix

*(int *)0 = 0; 是什么意思?

    来源: 互联网  发布时间:2016-07-01

    本文导语:  老大们,问个问题: 我在内核代码中有时会看到:*(int *)0 = 0;语句。比如__bug函数中就有这个语句 我的问题有两个: 1,*(int *)0 = 0,语句的字面意思是不是:0处置0? 2,为什么么我在内核代码中的任意一个函数...

老大们,问个问题:
我在内核代码中有时会看到:*(int *)0 = 0;语句。比如__bug函数中就有这个语句


我的问题有两个:

1,*(int *)0 = 0,语句的字面意思是不是:0处置0?

2,为什么么我在内核代码中的任意一个函数中插入“*(int *)0 = 0;” 语句,就会导致内核启动的停止呢?



多谢

|
MARK

|
mark

|
0 就是NULL,你对空指针操作,不异常退出才怪呢?

|
mark

|
把0作为一个地址,这个地址的内容置0

起始地址被清零了当然会有影响

|
也不知道你是哪些逻辑里加入此表达式,但在内核引导过过程中,
从物理地址0x0000到0x1000为4kb的页目录项,紧接着为处理内核使用内存的页表项,每个页表项为4个字节长度。
*(int *) 0 = 0;的意思就是把页表项全部置为0,这样的话,内核在进行内存操作时,一定会出现错误。导致内核引导失败。
在一般程序中也会使用类似的表达式去处理特别的问题。如c函数中的一个宏
offsetof(s,m)也是这么用的。
#define offsetof (size_t)&(((s *)0)->m)

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间javax.lang.model.type枚举typekind的类成员方法: int定义及介绍
  • 这个构造函数new String(byte[],int,int,int)怎麽用?谢谢!
  • java命名空间java.awt.image类databuffer的类成员方法: type_int定义及介绍
  • 我是初学者,问一个比较傻的问题:既然JAVA是一种纯面向对象的语言,那么为什么int i=new int()或int i=new int(1)不能通过编译?谢谢。
  • java命名空间java.awt.image类bufferedimage的类成员方法: type_int_argb_pre定义及介绍
  • void(*signal(int signo,void(*func)(int)))(int)又有问题了
  • java命名空间java.awt.image类bufferedimage的类成员方法: type_int_rgb定义及介绍
  • 在纯C当中是否支持多态,例如int abc(int a);int abc(char b);系统会根据不同的参数类型,调用不同的函数
  • java命名空间java.awt.image类bufferedimage的类成员方法: type_int_argb定义及介绍
  • Integer test(Integer i)=Int test(Int i) ?? iis7站长之家
  • java命名空间java.awt.image类bufferedimage的类成员方法: type_int_bgr定义及介绍
  • void(*signal(int signo,void(*func)(int)))(int)
  • 怎么确定 socket(int domain, int type, int protocol) 三个参数?
  • 请问一下,有谁知道linux源代码中socket(int domain, int type, int protocol);函数的定义是在哪个文件中啊?小弟我找了很久,都没找到,谢谢哈。
  • c#中(int)、int.Parse()、int.TryParse、Convert.ToInt32的区别详解
  • 无法从 int? 转换为 int 运行时出现错误
  • Integer test(Integer i)=Int test(Int i) ??
  • 比如一个"123456" 如何转化成 int类型然后和int型比较
  • int/int,如何得到小数,菜问题:)
  • 在jsp中<%! int i = 1 %>与<% int i = 1 %>2个声明有什么区别
  • 内核代码中的: int reboot(int flag) 这个函数在哪里?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3