【发布时间】:2015-03-10 23:35:41
【问题描述】:
我有一个 C 文件指针,我必须将它传递给 Fortran77 程序(作为整数),然后才能在 C 程序中再次使用(作为文件指针)将更多数据写入文本文件。我的 C 技能已经过时了,因为我已经忘记了大部分。谁能告诉我如何将 C FILE 指针转换为整数并返回?非常感谢您的帮助。
我正在维护一个旧代码,该代码在一个 10 年前的编译器中运行良好(偶然)。我在移植代码时遇到问题。新的编译器是 intel C 和 Fortran 编译器。
我知道 Fortran 2003 为 C 提供 ISO 绑定,但由于其他原因我不能在这里使用它们。
【问题讨论】:
-
您是在寻找文件描述符,正如当前的两个答案所暗示的那样,还是只是将指针地址直接视为整数?
-
如果是后者,你的平台上的指针和整数有多少字节?如果整数大到足以容纳该点,只需使用
intptr_t或uintptr_t强制转换指针。 -
机器是64位的。将指针地址视为整数也可以解决问题。当程序回到 C 时,我只需要一种方法来跟踪打开的文件。我不知道如何取回它。你能写下如何做到这一点作为答案吗?我愿意投票。
-
完成。添加了讨论此方法的答案。