Je rencontre un problème lorsque j'essaie de copier plusieurs fichiers en C. Il copie le premier fichier dans le répertoire, mais pas les autres. Les autres fichiers ne sont même pas ouverts et je ne sais pas d'où vient le problème. Une idée ?
bool copyFileToDirectory(char *file, char *directory){
int input_fd, output_fd;
ssize_t ret_in, ret_out;
char* buffer[2048];
struct stat fileStat;
/* Vérifier les autorisations */
access(directory, W_OK);
if(errno == EACCES) {
perror("Le fichier de sortie n'est pas accessible en écriture");
return false;
}
if(errno == EROFS) {
perror("Le fichier de sortie n'est pas accessible en écriture (lecture seule)");
return false;
}
int rval = access(file, R_OK);
if(rval != 0) {
printf("Le fichier d'entrée n'est pas lisible (accès refusé)\n");
return false;
}
/* Copie */
input_fd = open(file, O_RDONLY);
stat(file, &fileStat);
chdir(directory);
output_fd = open(file, O_WRONLY | O_CREAT | O_TRUNC, 0666);
chmod(file, fileStat.st_mode);
while((ret_in = read(input_fd, &buffer, 2048)) > 0){
ret_out = write(output_fd, &buffer, (ssize_t) ret_in);
if(ret_out != ret_in){
perror("Une erreur s'est produite lors du processus\n");
return false;
}
}
close(input_fd);
close(output_fd);
return true;
}