C nlist函数始终返回-1

C nlist函数始终返回-1,c,file,bsd,C,File,Bsd,我通过编译另一个程序生成了exe文件(d.out)。nlist函数始终返回-1。fopen func返回=无效的如果重要的话,我会像这样编译我的程序 gcc-I/usr/include main.c-L/usr/lib/i386 linux-gnu/pkgconfig-lbsd #include <string.h> #include <bsd/nlist.h> #include <stdio.h> #include <stdlib.h> in

我通过编译另一个程序生成了exe文件(d.out)。nlist函数始终返回-1。fopen func返回=无效的如果重要的话,我会像这样编译我的程序
gcc-I/usr/include main.c-L/usr/lib/i386 linux-gnu/pkgconfig-lbsd

#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());

}
#包括
#包括
#包括
#包括
int测试(){
结构nlist nl[2];
memset(&nl,0,sizeof(nl));
返回nl列表(“d.out”,nl);
//返回nl[0]。n_值;
}
int main(){
printf(“%d\n”,test());
}

我的FreeBSD手册页上说:

返回值
如果成功,则返回无效条目的数量;否则,如果 文件名不存在或不可执行,返回值为 是-1


d.out
存在吗?

当然存在。我试着打开它,它又回来了=空。@ArseniyErmilov,当然x位没有丢失?而且
文件d.out
说它是一个可执行文件?
d.out:ELF 32位LSB可执行文件…
-rwxrwx 1用户名我运行它gdb。在函数列表中的某个时刻,gdb打印:
\u dl\u runtime\u resolve(),位于../sysdeps/i386/dl trompoline.S:35../sysdeps/i386/dl trompoline.S:没有这样的文件或目录
。也许正因为这样,它才不起作用?