| 
					Sujet : Problème copie de fichier C/Linux | 
			
				| antp | 
				"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)    | 
			
			
					
						| chrisbk | 
			?
   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]    | 
			
		
			
					
						| Rasta Knight | 
			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 ©"    |