使用 GCC C 在 AIX 上处理空指针

2023-11-22

我们有一段用 C 编写的代码,有时不能很好地处理零指针。

该代码最初是在 Solaris 上编写的,此类指针会导致分段错误。并不理想,但比继续耕耘要好。

我们的经验是,如果您在 AIX 上读取空指针,您将得到 0。如果您使用xlc编译器你可以添加一个选项-qcheck=all捕获这些指针。但我们使用 gcc(并且希望继续使用该编译器)。做gcc提供这样的选择吗?


gcc提供这样的选择吗?

我羞涩地自愿回答不,没有。虽然我无法引用absence有关 gcc 和运行时 NULL 检查的信息。

您要解决的问题是您试图在编写得不好的程序中更明确地定义未定义的行为。

我建议您硬着头皮切换到 xlc 或手动添加NULL检查代码,直到发现并删除不良行为。

考虑:

  • 创建一个宏来对指针进行空检查
  • 在指针赋值之后添加该宏
  • 将该宏添加到接受指针的函数的入口点

当错误被删除时,您可以开始删除这些检查。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 GCC C 在 AIX 上处理空指针 的相关文章

随机推荐

  • 如何对列表中的 data.frame 进行子集化并返回 data.frame?

    当对列表内的 data frame 进行子集化时 我得到向量而不是 data frames 请参见下面的示例 如何避免这种情况并获得 data frames l lt list data frame a c 1 2 3 data frame
  • 使用 :: 访问模块方法

    我读过的文档告诉我使用 Module method 来访问模块中的方法 但是 我也可以使用 Module method 这是语法糖 还是我很困惑 module Cat FURRY LEVEL 4 def self sound w meow
  • 没有 Maven 或 gradle 的 Spock

    我有一个使用 ant 进行构建的标准 Java 项目 我想在不中断当前流程的情况下向该项目添加 spock 测试 允许我开始将 spock 测试集成到该项目中的最小更改集是什么 关于使用 ant 将 spock 集成到遗留项目中的可用信息并
  • 不使用回调方法加载谷歌地图

    我的网站上有多个谷歌地图实例 现在同一页面上有两个不同的谷歌地图 发生的情况是第一个有效 其他无效 现在我知道逻辑问题让我先向您展示我的代码
  • MP4 / ISO 14496-12:如何找到视频和音频访问单元?

    我正在编写一个用于检查 MP4 文件 又名 ISO 基本媒体文件格式 ISO 14496 第 12 部分 的工具 我可以解释 ISO 14496 12 中列出的由 OSS 生成的大部分框 我还没有弄清楚如何提取单独的视频访问单元和音频访问单
  • C# 测试字符串是否为整数?

    我只是好奇 C 语言或 NET Framework 中是否内置了一些东西来测试某些东西是否是整数 if x is an int Do something 在我看来可能有 但我只是一年级编程学生 所以我不知道 Use the int TryP
  • 如何获取 Java 类引用的初始化值

    我有一个Class klass Object init klass boolean class false klass byte class byte 0 Object null 用例是我有一个任意的java lang reflect Me
  • 将 List 转换为 List (或任何扩展 Number 的类)

    我想创建一个非常通用的实用方法来获取任何集合并将其转换为从数字 长整型 双精度 浮点型 整数等 扩展的用户可选类的集合 我想出了这段代码 它使用 Google Collections 来转换 Collection 并返回一个不可变列表 im
  • Python 中的 OpenCV PCA 计算

    我正在通过 OpenCV 在 Python 中 加载一组大小为 128x128 的测试图像 将它们重新整形为向量 1 128x128 并将它们全部放在一个矩阵中以计算 PCA 我正在使用新的 cv2 库 代码 import os impor
  • 如何使用 OpenSSL 生成自签名 SSL 证书? [关闭]

    Closed 这个问题是与编程或软件开发无关 目前不接受答案 我正在向嵌入式 Linux 设备添加 HTTPS 支持 我尝试通过以下步骤生成自签名证书 openssl req new gt cert csr openssl rsa in p
  • 用于突出显示多个单词的 Microsoft Word 宏

    我的目的是创建一个非常基本的宏来查找一系列单词并突出显示它们 不幸的是 我不知道如何一步完成多个单词 例如 以下代码有效 Sub Macro1 Macro1 Macro Selection Find ClearFormatting Sele
  • 如何正确刷新 UINavigationBar?

    关于这个问题 如何从子视图控制器中更改后退按钮文本 我正在寻找一种在更改后退按钮标题后刷新导航栏的正确方法previousViewController navigationItem backBarButtonItem title New T
  • Google OpenId:找不到 OpenID 端点(间歇性)

    通常使用 Google OpenId 工作正常 每天数千次 然后它会开始间歇性出错并超时一个小时左右 某些请求会验证 但不是全部 反复验证最终会起作用 错误消息是 Event code 200000 Event message No Ope
  • NodeJS中获取Mongo数据库中插入文档的_id

    我使用 NodeJS 在 MongoDB 中插入文档 使用collection insert我可以将文档插入数据库 如下代码所示 collection insert objectToInsert function err if err re
  • 查找 R 列中的最小非零值

    我在R中遇到这种情况 my minimum lt min my data frame my column number 这将返回最小值 我想要的是最小的非零值 我见过很多更复杂的情况 人们想要一个非零最小值的向量 但我只想要一个数字 即存在
  • 是否可以在原始输入中吞下一个密钥?

    我正在使用原始输入API因为我需要能够以不同的方式响应来自不同 USB HID 设备的按键 即使它是相同的按键 我的窗口收到WM INPUT消息正确 我可以检索RAWKEYBOARD结构获取我需要的所有信息 现在我想阻止这些 USB 设备切
  • 在uWSGI中启用内部路由

    我有一个与 uWSGI 一起使用的 Django 应用程序 我的uWSGI配置是 uwsgi http 127 0 0 1 8000 env DJANGO SETTINGS MODULE my django app settings mod
  • 用随机值替换数据框中的 NaN

    我有一个带有 NaN 值的数据框 data train 下面给出了一个示例 republican n y republican n NaN democrat NaN n democrat n y 我想用一些随机值替换所有 NaN 例如 re
  • 如何将NativeActivity的内容视图设置为Java创建的组件

    有没有办法将 NativeActivity 的内容设置为用 Java 创建的组件 例如 FrameLayout ImageView 等 我需要使用 NativeActivity 用于在 Xperia Play 上获取触摸板输入 但我还需要能
  • 使用 GCC C 在 AIX 上处理空指针

    我们有一段用 C 编写的代码 有时不能很好地处理零指针 该代码最初是在 Solaris 上编写的 此类指针会导致分段错误 并不理想 但比继续耕耘要好 我们的经验是 如果您在 AIX 上读取空指针 您将得到 0 如果您使用xlc编译器你可以添