2011-10-31 88 views
1

我是非常新的Fortran。目前我正在寫(或試圖編寫)調用C庫的Fortran應用程序。從fortran調用c函數,遇到argc和argv問題

到目前爲止,我已經有了一些工作,但是我堅持使用argc和argv庫中的init函數來獲取調用該函數的程序名稱。

的C-庫預計指針argc和argv:

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

我不知道如何來表達*** ARGV在FORTRAN。其他功能只需要整數,所以我不得不使用這個骨架沒有他們的麻煩:

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

call init(,) 
+0

是gchar ***類似於二維指針數組嗎? –

回答

5

你可能需要用C來寫,init_fortran或類似自己的包裝功能,你的Fortran調用和帶參數一種可以在Fortran中表達的方式,然後將它們轉換爲C init函數所期望的。

4

我會建議使用模塊ISO_C_BINDING並將指針傳遞給指針數組,如果我理解正確。