A voir également:
- (C) Copier un fichier a la suite d'un autre
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier rar - Guide
- Ouvrir un fichier .bin - Guide
- Forcer la suppression d'un fichier - Guide
3 réponses
loupius
Messages postés
697
Date d'inscription
dimanche 1 novembre 2009
Statut
Membre
Dernière intervention
31 décembre 2017
148
23 déc. 2009 à 00:07
23 déc. 2009 à 00:07
Ah les pointeurs et les tableaux !
Pourquoi 'buffer2++' n'a aucun sens ?
'buffer2' est un nom de tableau et ne peut donc être modifié L'adresse d'un tableau est une constante.
Par contre si on déclare une variable 'char* p', on peut parfaitement écrire 'p = buffer2' puis plus loin 'p++'.
Bonne réflexion.
Pourquoi 'buffer2++' n'a aucun sens ?
'buffer2' est un nom de tableau et ne peut donc être modifié L'adresse d'un tableau est une constante.
Par contre si on déclare une variable 'char* p', on peut parfaitement écrire 'p = buffer2' puis plus loin 'p++'.
Bonne réflexion.
sinon plus proprement essaye ce code.
/* gcc -Wall -std=c99 -Werror -g -o concatfile test.c */ #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <sys/types.h> #include <fcntl.h> #include <sys/stat.h> #define erreur(x) do { \ fprintf(stderr, "Erreur fatale %s/%s()/l.%d - ", __FILE__, __func__, __LINE__); \ perror(x); \ exit(EXIT_FAILURE); \ } while (0) void usage(char *string){ fprintf(stderr,"usage: %s src dest\n", string); exit(EXIT_FAILURE); } int main(int argc, char** argv) { if(argc != 3 ) usage(argv[0]); int d1, d2; if((d1 = open(argv[1], O_RDONLY,S_IRWXU)) == -1 ) erreur("open"); if((d2 = open(argv[2], O_WRONLY | O_APPEND, S_IRWXU)) == -1 ) erreur("open"); char c; int nblu; while((nblu = read(d1, &c, 1)) == 1) { if( write(d2, &c, nblu) == -1 ) erreur("write"); } if(nblu == -1 ) erreur("read"); return EXIT_SUCCESS; }
DARsKater
Messages postés
749
Date d'inscription
vendredi 4 janvier 2008
Statut
Membre
Dernière intervention
5 août 2020
233
23 déc. 2009 à 01:12
23 déc. 2009 à 01:12
Ctrl C + Ctrl V
23 déc. 2009 à 00:35
Bonne soirée.