【问题标题】:calling c functions from fortran, trouble with argc and argv从 fortran 调用 c 函数,argc 和 argv 出现问题
【发布时间】:2011-12-18 19:28:39
【问题描述】:

我对 Fortran 非常是新手。目前我正在编写(或尝试编写)一个调用 C 库的 fortran 应用程序。

到目前为止,我已经完成了一些工作,但我坚持使用库中的 init 函数,该函数期望 argc 和 argv 只是为了获取调用该函数的程序名称。

C 库需要指向 argc 和 argv 的指针:

void init(gint argc, gchar ***argv);

我不知道如何在 fortran 中表达 ***argv。其他函数只需要整数,所以我可以毫不费力地为它们使用这个骨架:

interface
    subroutine init( argc, argv)
        ??
    end subroutine ee_init
end interface

call init( , )

【问题讨论】:

  • gchar *** 是不是类似于二维指针数组?

标签: c fortran


【解决方案1】:

您可能需要用 C、init_fortran 或从 Fortran 调用的类似语言编写自己的包装函数,并以您可以在 Fortran 中表达的方式获取参数,然后将它们转换为 C init 函数所期望的。

【讨论】:

    【解决方案2】:

    如果我理解正确,我建议使用模块 ISO_C_BINDING 并将指针传递给指针数组。

    【讨论】:

      猜你喜欢
      • 2012-08-16
      • 2013-02-02
      • 2017-08-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-26
      • 2013-03-09
      相关资源
      最近更新 更多