2017-02-24 94 views
0

我通過編譯另一個程序來製作exe文件(d.out)。而nlist函數總是返回-1。 fopen func返回!= null。如果它的事項我編譯我的PROG這樣 gcc -I/usr/include main.c -L/usr/lib/i386-linux-gnu/pkgconfig -lbsdnlist函數總是返回-1

#include <string.h> 
#include <bsd/nlist.h> 
#include <stdio.h> 
#include <stdlib.h> 

int test(){ 
    struct nlist nl[2]; 
    memset(&nl, 0, sizeof(nl)); 
    return nlist("d.out", nl); 
// return nl[0].n_value; 
} 

int main(){ 


printf("%d \n", test()); 

} 

回答

0

我的FreeBSD的手冊頁說:

返回值
如果成功則返回無效條目的數量;否則,如果 文件的文件名不存在或不可執行,則返回的值 爲-1。

d.out是否存在?

+0

它的存在。我試圖打開它,它返回!= NULL。 –

+0

@ArseniyErmilov當然,這些x位不會丟失?和'文件d.out'說這是一個可執行文件? – Jens

+0

'd.out:ELF 32位LSB可執行文件...''-rwxrwxrwx 1用戶名...' –