begin process at 2008 07 20 23:43:29
1 213 505 membres
406 nouveaux aujourd'hui
14 167 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : [NASM-Linux] Problème de buffer [ Système d'exploitation / Linux ] (yann2192)

[NASM-Linux] Problème de buffer le 05/01/2008 00:02:53

yann2192
Bonjour à tous, je me suis lancé dans l'assembleur 32bits avec les appels linux et j'ai un problème.

Je récupére le chemin d'un fichier entrer par l'user avec read dans un buffer et je n'arrive pas à ouvrire le fichier avec le buffer

voici le code qui pose probleme :

BITS 32
 
     SECTION .data
        bufsiz      dd 1024 ; taille du buffer

    SECTION .bss
        buf    resb 1024
       
     SECTION .text
         GLOBAL _start
        
         _start:
 
        mov eax, 3 ; Fonction READ
        mov ebx, 0 ;
        mov ecx, buf ; stoke dans buf
        mov edx, bufsiz
        int 0x80
       
        mov eax, 5 ; Fonction OPEN
        mov ebx, buf ; Chemin   
        mov ecx, 10 ; Flag
        mov edx, 0 ; Mode
        int 0x80

Il n'y a pas d'erreur d'assemblage mais le fichier n'est pas ouvert.

Avez vous une idée ?
       

Re : [NASM-Linux] Problème de buffer le 07/01/2008 10:55:30

_dune2_
Membre Club
Salut,

Dans le fichier /usr/include/bits/fcntl.h :

#define O_ACCMODE          0003
#define O_RDONLY             00
#define O_WRONLY             01
#define O_RDWR               02
#define O_CREAT            0100 /* not fcntl */
#define O_EXCL             0200 /* not fcntl */
#define O_NOCTTY           0400 /* not fcntl */
#define O_TRUNC           01000 /* not fcntl */
#define O_APPEND          02000
#define O_NONBLOCK        04000
#define O_NDELAY        O_NONBLOCK
#define O_SYNC           010000
#define O_FSYNC          O_SYNC
#define O_ASYNC          020000

ton paramètre flag à la fonction open est : 10, soit "00001010" donc 010 + 002 en octal,
or 010 ne correspond à aucune option ....
Ensuite, y-a-t-il un code d'erreur de retour ??
Si tu exécutes pas-à-pas ton appli avec gdb, peux-tu confirmer que ton "buf" contient bien
le nom du fichier que tu as entré ?

Dune2

Gentoo... que du bonheur ...

Re : [NASM-Linux] Problème de buffer le 07/01/2008 15:15:00

yann2192
J'ai essayer de remplacer la fonction ouverture fichier par écriture dans console et le buffer contient bien mon fichier : test.txt

Si cela vient du flag d'ouverture je vais le modifier ce soir et je retesterai

Yann

Re : [NASM-Linux] Problème de buffer le 13/01/2008 10:06:17

yann2192
Non sa ne vient pas du flag, j'ai essayer d'ouvrire le fichier avec ce morceau :

section .data
fichier    dd "test.txt",0


et cela marche à la perfection donc je pense qu'il doit y'avoir une manipulation sur le buffer avant de l'utiliser mais laquel ?


Classé sous : buffer, problème, linux, mov, buf

Participer à cet échange

Pub



Appels d'offres

Dessins techniques
Budget : 60€
Animation Flash - Doma...
Budget : 370€
Application flash medi...
Budget : 1 000€

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS