关于linux中空指针的问题

关于linux中空指针的问题,第1张

这个问题,实际上在今天的JulianTec adil 邮件列表中有人问到了。 yihe chen 给出了答案:

这个问题得从指针说起。。

C语言里面的指针可以指向任何有效的数据,也可以

不指向任何东西;这后者即所谓的NULL指针。

指向有效数据的时候,对它使用*做dereference *** 作

就可以取出数据来了;但是对不指向任何数据的指针

来进行* *** 作肯定就没什么意义了,对吧?这其实是个

bug。

在现代的 *** 作系统设计中,为了消除程序里面的这种

bug,故意分配一个专门的不能访问的内存页,然后

将NULL指针安排在里面。这样当程序员不小心在自己

的程序中写下对NULL指针的提领 *** 作后,系统运行时

就会报错。

在windows和linux中,这样的内存页被设计者安排在

0地址开始对应的那个页上。实际上,这个页面里面

的任何地址都是不能被提领的。*((char *)0) 不可以,

*((char *)0x12)之类的地址也不可以。

很多人认为NULL指针其实就是指向0地址的指针,实际

上这是不准确的。虽然很少见,但也有处理器架构将

NULL指针安排在非零地址起始的页面内。所以为了程

序的可移植性,在需要使用NULL指针的时候,用null

而来不用0值来初始化指针变量。

你可以访问这里的归档:http://www.juliantec.info/mlist/archives/index.html

但是今天的,没这么快归进去,你可以访问这里的记录:

http://www.freelists.org/post/juliantec_list/char-0,1

我来告诉你,m是一个危险的命令,使用的时候要特别当心。命令格式:rm [选项] 文件… 命令功能:删除一个目录中的一个或多个文件或目录,如果没有使用- r选项,则rm不会删除目录。如果使用 rm 来删除文件,通常仍可以将该文件恢复原状。

命令参数:-f, --force 忽略不存在的文件,从不给出提示。-i, --interactive 进行交互式删除-r, -R, --recursive 指示rm将参数中列出的全部目录和子目录均递归地删除。-version 输出版本信息并退出

命令实例:实例一:删除文件file,系统会先询问是否删除。 命令:m 文件名实例二:强行删除file,系统不再提示。 命令:rm -f log1.log实例三:删除任何.log文件;删除前逐一询问确认 命令:rm -i *.log

拓展资料:

Linux *** 作系统是基于UNIX *** 作系统发展而来的一种克隆系统,它诞生于1991 年的 [Linux桌面] 10 月5 日(这是第一次正式向外公布的时间)。以后借助于Internet网络,并通过全世界各地计算机爱好者的共同努力,已成为今天世界上使用最多的一种UNIX 类 *** 作系统,并且使用人数还在迅猛增长。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/9005518.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-23
下一篇2023-04-23

发表评论

登录后才能评论

评论列表(0条)

    保存