file.c
00001 #include <sys/types.h>
00002 #include <assert.h>
00003 #include <errno.h>
00004 #include <fcntl.h>
00005 #include <stdio.h>
00006 #include <string.h>
00007 #include <unistd.h>
00008
00009 void affichefichier(int descr) {
00010 char c;
00011 while(read(descr, &c, 1) == 1) {
00012 if (write(STDOUT_FILENO, &c, 1) == -1) {
00013 perror("write a renvoyé: ");
00014 return;
00015 }
00016 }
00017 }
00018
00019 int main(int argc, char *argv[])
00020 {
00021 if (argc < 2) {
00022 fprintf(stderr, "Usage: %s fichier1 [fichier2 [...]]\n", argv[0]);
00023 return 1;
00024 }
00025 int i;
00026 for (i = 1; i < argc; i++) {
00027 assert(argv[i] != NULL);
00028 int fd = open(argv[i], O_RDONLY, 0);
00029 if (fd < 0) {
00030 fprintf(stderr, "Erreur d'ouverture du fichier %s: %s\n",
00031 argv[i], strerror(errno));
00032 continue;
00033 }
00034 affichefichier(fd);
00035 close(fd);
00036 }
00037 return 0;
00038 }