bonjour
j'ai un petit problème avec fwrite, en fait je voudrais tout simplement recopier les données d'un fichier 1 dans un fichier 2 seulement si ces données n'existent pas dans fichier2
voici le code que j'ai pondu:
int main()
{
int value,taille;
FILE *fp;
FILE *fp1;
char *test;
char command[100];
test = (char*)malloc(sizeof(char));
fp = fopen("fichier1","r");
fp1 = fopen("fichier2","a");
while(!feof(fp))
{
fgets(test,10,fp);
taille = ftell(fp);
sprintf(command,"grep \"%s\" fichier1", test);
if(system(command))
{
fwrite(test,sizeof(char),taille,fp1);
}
}
fclose(fp);
fclose(fp1);
return 0;
}
-voici le contenu du fichier1 :
salut
hello
bonjour
-le fichier fichier2 est vide au début
et voila ce que j'obtiens, dans test1.txt, lorsque je lance le programme:
salut
hello^@^@^@ibonjour
je ne sais pas pourquoi il apparait ces caractères en plus.
Autre problème ne connaissant pas à l'avance la taille d'une ligne du fichier1, je voulais mettre une valeur élévée (1000) pour fgets mais ceci me génère un segmentation fault.
j'espère que vous pourrez m'aider.
merci d'avance