用 f95 编译的主程序在程序启动时会调用库中的伪初始化例程 f90_init。库中的这些例程是不进行任何操作的伪例程。编译器生成的调用将指针传递到程序的参数和环境。这些调用会提供软件挂钩,您可以在 C 中用软件挂钩提供自己的例程,以便在程序启动之前以任何定制方式初始化程序。
这些初始化例程的一种可能用途是,为国际化 Fortran 程序调用 setlocale。由于 setlocale 在 libc 以静态方式链接时不起作用,因此只有以动态方式链接了 libc 的 Fortran 程序才能进行国际化。
库中 init 例程的源代码如下
void f90_init(int *argc_ptr, char ***argv_ptr, Char ***envp_ptr) {} |
f90_init 由 f95 主程序调用。参数分别被设置为 argc、argv 和 envp 的地址。