2017-02-24 3 views
0

Ich habe exe-Datei (d.out) durch Kompilieren eines anderen Programms. Und die Funktion nlist gibt immer -1 zurück. fopen func gibt zurück! = null. Wenn es darauf ankommt kompilieren ich mein prog wie dieses gcc -I/usr/include main.c -L/usr/lib/i386-linux-gnu/pkgconfig -lbsdNlist-Funktion gibt immer -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()); 

} 

Antwort

0

Mein FreeBSD Manpage sagt:

RETURN WERTE
Die Anzahl der ungültigen Einträgen, wenn erfolgreich zurückgegeben; Andernfalls, wenn der Dateiname nicht existiert oder nicht ausführbar ist, ist der zurückgegebene Wert -1.

Ist d.out vorhanden?

+0

natürlich existiert es. Ich habe versucht, es zu öffnen und es kommt zurück! = NULL. –

+0

@ArseniyErmilov Und natürlich fehlen die x-Bits nicht? Und 'Datei d.out' sagt, dass es eine ausführbare Datei ist? – Jens

+0

'd.out: ELF 32-Bit LSB ausführbare Datei ...' '-rwxrwxrwx 1 Benutzername ...' –