2017-02-24 1 views
0

J'ai créé le fichier exe (d.out) en compilant un autre programme. Et la fonction nlist renvoie toujours -1. fopen func renvoie! = null. S'il importe compiler mon prog comme ça gcc -I/usr/include main.c -L/usr/lib/i386-linux-gnu/pkgconfig -lbsdLa fonction nlist renvoie toujours -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()); 

} 

Répondre

0

Ma page man FreeBSD dit:

VALEURS DE RETOUR
Le nombre d'entrées non valides est retourné en cas de succès; sinon, si le nom du fichier n'existe pas ou n'est pas exécutable, la valeur renvoyée est -1.

Existe-t-il d.out?

+0

il existe bien sûr. J'ai essayé de l'ouvrir et ça revient! = NULL. –

+0

@ArseniyErmilov Et bien sûr les x bits ne manquent pas? Et 'fichier d.out' dit que c'est un exécutable? – Jens

+0

'd.out: Exécutable LSB 32 bits ELF ...' '-rwxrwxrwx 1 nom d'utilisateur ...' –