Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1348 connectés 

  FORUM HardWare.fr
  Programmation

  Problème copie de fichier C/Linux

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème copie de fichier C/Linux

n°116573
Rasta Knig​ht
Houston, I've got a problem
Posté le 23-03-2002 à 18:28:16  profilanswer
 

Salut à tous,
 
je dois faie un "mini-shell" sous nux qui comprend notamment une fonction copier que voilà :
 
void cop_fic(){
 
int nb,pos=50;
FILE *fichier1, *fichier2;
char octetslus[MAXOCT];
char fichieracopier[MAX], nomcopie[MAX];
 
        printf("\n Quel fichier voulez-vous copier ? \n" );
        scanf("%s", fichieracopier);
        printf("test" );
        printf("\n Quel nom voulez-vous donner à votre copie ? \n" );
        scanf("%s", nomcopie);
 
fichier1=fopen(fichieracopier,"r" );
fichier2=fopen(nomcopie,"w" );
if (fichier1==NULL)
  printf("\n error" );
 else
   { printf("\n pas d'error" );
    fseek (fichier1,pos,SEEK_SET);
    while ( (nb=fread(octetslus,sizeof(char), MAX, fichier1)) >0 )
    {
      fwrite(octetslus, sizeof(char),nb,fichier2);
    }
 
    fclose(fichier1);
    fclose(fichier2);
   }
}
 
avec MAX défini à 512 et MAXOCT à 256
 
Le problème est que quand je copie un fichier texte classique de 360ko la fonction marche. Par contre avec un fichier de seulement 123 octets le fichier copié n'en fait que 73. Est-ce que qqn pourrait m'expliquer où est le problème?
 
PS : Comme doit le montrer le sujet et le code "Big débutant inside ©"


---------------
Le tout c'est d'y croire! DaBZHWDT site : www.setibzh.com
mood
Publicité
Posté le 23-03-2002 à 18:28:16  profilanswer
 

n°116581
chrisbk
-
Posté le 23-03-2002 à 18:52:27  profilanswer
 

?
 
MAX = 512 et MAXOCT = 256 ?
 
ben gaffe, tu risque des soucis avec ta ligne :
 
nb=fread(octetslus,sizeof(char), MAX, fichier1
 
globalement, tu peux lire MAX (soit 512) octets dans un tableau de MAXOCT (256) octets .
ce qui n'est pas bon
 
donc :
 
nb=fread(octetslus,sizeof(char), MAXOCT, fichier1
 
 
Ensuite, a l'ouverture de tes fichiers, ouvre en "rb" plutot qu'en r
 
 
fichier1=fopen(fichieracopier,"rb" );  
fichier2=fopen(nomcopie,"wb" );  
 
Ensuite :
 
fseek (fichier1,pos,SEEK_SET);  
   
avec pos = 50
 
ben tiens, fais le calcul : 123-50 = 73 :D
 
devine d'ou viens l'erreur :D
 
vire moi cette ligne et tout rentrera dans l'ordre
Pourquoi tu l'as mise dis moi ??

 

[jfdsdjhfuetppo]--Message édité par chrisbk--[/jfdsdjhfuetppo]

n°116598
Rasta Knig​ht
Houston, I've got a problem
Posté le 23-03-2002 à 19:44:45  profilanswer
 

pkoi bah euh...
 
parce que le prof l'avait mise :D  
 
en tout cas merci chrisbk :jap:


---------------
Le tout c'est d'y croire! DaBZHWDT site : www.setibzh.com
n°116599
Rasta Knig​ht
Houston, I've got a problem
Posté le 23-03-2002 à 19:45:17  profilanswer
 

juste une kestion...
 
rb = ?


---------------
Le tout c'est d'y croire! DaBZHWDT site : www.setibzh.com
n°116603
antp
Super Administrateur
Champion des excuses bidons
Posté le 23-03-2002 à 19:50:29  profilanswer
 

"read binary"
Ça évite notemment de convertir les 0x0A et 0x0D en retour de ligne (0A sous Linux, 0D0A sous Windows, si je me souviens bien)


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  Problème copie de fichier C/Linux

 

Sujets relatifs
[PHP/Cookies]Probleme a propos d'une incoherence sur les cookies(newbi[PHP/Sessions] Problème avec transfert du SID
[PHP/MySQL] probleme pour recuperer des donnees d'une base MySQL[HTML & DHTML] HELP : Problème avec objet INPUT type=file
Appel desespere !!! Fortran sous Linux.....[php] Petit probleme ki semble tt con ms j'y arrive pas !!!! help !
PHP - Probleme cookies[C/C++] Lire un fichier de données bizarre
[Java] Problème avec int et Object vi encore une question de newbie :DPetit probleme d'assembleur , ca ne doit pas etre bien mechant, Help!
Plus de sujets relatifs à : Problème copie de fichier C/Linux


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR