Bonjour.

Je sais qu'en C, les paramètres sont passés par valeur et les valeurs des conteneurs en changent pas. Ainsi, long f(int a,int b){return a+b;} est une fonction qui va renvoyer la valeur de a+b mais ne changera pas les valeurs de a ni de b, quoi qu'il se trouve comme traitement sur a et b dans le bloc de la fonction.

Dans le cas de manipulation sur deux fichiers, en passant des pointeurs de flux, on réalise les opérations sur le fichier à la suite du pointeur de flux. Mais les valeurs des pointeurs ne seront pas modifiés. Alors que faut-il faire pour réaliser une fonction qui restitue le pointeur à l'endroit où le traitement est achevé ? Faut-il renvoyer un FILE * qui désigne le pointeur de fichier après traitement et d'écraser l'ancienne valeur (un peu à la manière d'un fgets qui écrase le pointeur de chaîne dans lequel elle écrit) et réinitialiser les pointeurs, ou est-ce une mauvaise idée?