sbrk 返回值的上下文中的“(void*)-1”是什么?

the_endian

Linux手册页对于sbrk()该发生故障时,它返回的状态(void*) -1什么是(void*) -1,它是否有任何意义,或者它只是一个永远不可能真正成为 a 的数字,void*它被强制转换为 avoid*只是为了满足返回 a 的函数签名void*我问这个是因为我以前从未见过指向负地址的指针。我不知道这可以在任何平台上取消引用

安德鲁·斯特里克兰

在大多数操作系统中,内存分配在一组页面中(这些页面可以在物理 RAM 中,也可以是存储在永久存储磁盘/设备上的虚拟页面,每个页面通常为 4KB)。由于 -1(无符号 0xFFFFFFFFFFFFFFFF 或 32 位的 0xFFFFFFFF)是 QWORD(或 32 位的 DWORD)的最大可能值,因此页面通常不能从此地址开始,因为它是地址空间中的最后一个地址。因此 -1 是一个很好的值,用于指示内存分配中的错误,因为它通常被认为是一个不存在的页面。至于指向负地址的指针,如果您曾经有过汇编经验,您的编译器负责在其代码生成中强制执行符号,您会记得变量不隐式具有符号(只有指令赋予它此属性)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么在F的上下文中Deferred工厂方法具有返回值

是什么导致此Codeigniter 3应用程序中的错误“无法在写入上下文中使用方法返回值”?

为什么第一个sbrk的返回值与后续调用不同?

为什么malloc和sbrk从不同的段返回地址?

'=>' 是什么意思(在函数/属性上下文中)?

在React上下文中,Next.js是什么?

在Hibernate的load()方法的上下文中,代理是什么?

在Java 8上下文中,“糖”,“糖”是什么?

SELinux上下文中的地图访问是什么

在ZIP文件结构的上下文中,“磁盘”是什么?

vuejs、vuex上下文中的rootState是什么

“ typename ...”在此上下文中是什么意思?

+= 在事件处理的上下文中是什么意思?

关于brk / sbrk的不安全/遗留之处是什么?

为什么两次调用sbrk(0)会给出不同的值?

什么是git上下文中的“ Maildir”?

为什么列表上下文中的替换不返回捕获列表?

在列表上下文中匹配不会返回空列表。为什么?

为什么ExecuteNonQuery返回“在此上下文中输入无效”(ASP.NET | Ole Db)?

在列表上下文中分配哈希值有什么区别?

||是什么 :在shell脚本的上下文中意味着什么?

=>的作用是什么?在下面的上下文中它叫什么?

为什么在逗号分隔符上下文中将预递增的结果转换为void?

在铸造、编译器的上下文中,“承诺”这个词是什么意思?

Bean的Spring会话范围如何工作?Web上下文中Bean的默认范围是什么?

在操作系统上下文中,“基于”和“源自”是什么意思?

在线程同步的上下文中,短语“类对象”指的是什么?

Java语言规范上下文中的“类的二进制名称”是什么?

子路径在导入语句的上下文中是什么意思?