C nlist函数始终返回-1
我通过编译另一个程序生成了exe文件(d.out)。nlist函数始终返回-1。fopen func返回=无效的如果重要的话,我会像这样编译我的程序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
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:没有这样的文件或目录
。也许正因为这样,它才不起作用?