Unix 为什么数据段中的位置0不可访问?

Unix 为什么数据段中的位置0不可访问?,unix,Unix,我正在读UNIX(R)环境中的高级编程。我试图在每章末尾回答问题,但我被困在这一章: 7.4某些UNIX系统实现故意安排在执行程序时,无法访问数据段中的位置0。为什么?这本书给出了答案: 7.4这提供了一种在试图取消引用空指针(一种常见的C编程错误)时终止进程的方法 几年前使用了一个HP编译器,它有一个命令行选项来允许取消对空值的引用。我们不知道它是由make配置启用的。当我们尝试将代码移植到另一个平台时,由于所有的NPR,它失败得很惨……我认为故意使0不可访问允许使用传统的null(0)指针,

我正在读UNIX(R)环境中的高级编程。我试图在每章末尾回答问题,但我被困在这一章:


7.4某些UNIX系统实现故意安排在执行程序时,无法访问数据段中的位置0。为什么?

这本书给出了答案:

7.4这提供了一种在试图取消引用空指针(一种常见的C编程错误)时终止进程的方法


几年前使用了一个HP编译器,它有一个命令行选项来允许取消对空值的引用。我们不知道它是由make配置启用的。当我们尝试将代码移植到另一个平台时,由于所有的NPR,它失败得很惨……我认为故意使0不可访问允许使用传统的null(0)指针,而尝试取消引用一个指针将导致崩溃。如果您可以在0处读/写,那么这可能比无意中写入位于0处的任何内容更可取。