2017-02-24 52 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用户名...' –