#include "csapp.h" void server(int readfd, int writefd) { int fd; ssize_t n; char buff[MAXLINE+1]; if ( (n = Read(readfd, buff, MAXLINE)) == 0) {printf("end-of-file while reading pathname"); exit(0);} /* erreur lecture */ buff[n] = '\0'; /* terminer par caracter NULL */ if ((fd = open(buff, O_RDONLY)) < 0) { snprintf(buff + n, sizeof(buff) - n, " : impossible d'ouvrir, %s\n", strerror(errno)); /* prepare message d'erreur dans tampon buff */ n = strlen(buff); Write(writefd, buff, n); } else { /* ouverture reussie */ while ((n = Read(fd, buff, MAXLINE)) > 0) /* lire contenu fichier */ Write(writefd, buff, n); /* ecrire contenu fichier sur tube vers client */ Close(fd); } }