在将C ++应用程序从32位转换为64位Linux时,我发现了一个有趣的bug。 我们的FileStore类实现了保存/恢复文件的结构。 除了一个方法之外,它总是在每个操作之前和之后调用fopen()和fclose()。 在32位平台上的这个(buggy)方法中,即使该文件之前已经被其他方法使用了fclose(),它也可以没有错误地fseek()和fread()。 在64位平台上,每次都在fread()上崩溃。 我想在32位平台上,底层的FILE结构在fclose()之后仍然存在,所以仍然可以访问它。 有没有人有任何进一步的信息,为什么这个差异和任何其他问题与64位文件I / O?
Windows可以区分32位和64位DLL吗?
为什么Windows 32位被称为Windows x86而不是Windows x32?
从32位C DLL创build一个64位的DLL
没有溢出投在x64上
挂钩从32位应用程序的64位进程
这听起来像对我来说未定义的行为。 你的问题的64位与32位方面是一个红色的鲱鱼。 编译器可以自由地清除你的主目录,或者在这种情况下可能提交联邦纳税申报表。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。