page xiv (introduction) ----------------------- Au lieu de : C'est le cas entre autre Lire : C'est le cas entre autres page 31 ------- Au lieu de : il faut sauvegarder sont contexte Lire : il faut sauvegarder son contexte page 45 ------- Au lieu de : return (malloc (TIME_STRING_SIZE * sizeof *strtime)); Lire : return (malloc (TIME_STRING_SIZE)); page 54 ------- Au lieu de : #define CARRE(a) ((a)*(a)) /* ... */ int i = 2; printf ("%d\n", CARRE(i++)); Le carré de 2 est 4 mais le code précédent affichera 6 (et la variable i contiendra 4 au lieu de 6). Lire : #define CARRE(a) ((a)*(a)) /* ... */ int i = 2; printf ("CARRE(i++)=%d\n", CARRE(i++)); printf ("i=%d\n", i); Le carré de 2 est 4 mais le code précédent peut aussi bien afficher 4 que 6 pour le carré. Quant à la variable i, elle peut contenir aussi bien 4 comme attendu en fin d'exécution que 3 et ce, en fonction du compilateur. Page 136 -------- Au lieu de : i = regexec (preg, str, 0, NULL, NULL); Lire : i = regexec (preg, str, 0, NULL, 0); Page 138 -------- Dans /* Recherche des motifs */ Au lieu de : i = regexec (preg, str, n, r, NULL); Lire : i = regexec (preg, str, n, r, 0); Page 176 -------- Au lieu de : while (!feof (fe)) { ssize_t l; l = fread (buf, sizeof (char), BUFSIZ, fe); if (ferror (fe)) { fprintf (stderr, "Erreur de lecture\n"); return (-1); } fwrite (buf, sizeof (char), l, fn); if (ferror (fn)) { fprintf (stderr, "Erreur d'écriture\n"); return (-1); } } return (0); Lire : while (!feof (fe)) { ssize_t l; l = fread (buf, sizeof (*buf), BUFSIZ, fe); if (ferror (fe)) { fprintf (stderr, "Erreur de lecture\n"); fclose (fe); fclose (fn); return (-1); } fwrite (buf, sizeof (*buf), l, fn); if (ferror (fn)) { fprintf (stderr, "Erreur d'écriture\n"); fclose (fe); fclose (fn); return (-1); } } fclose (fe); fclose (fn); return (0); Page 186 -------- Au lieu de : char *line[BUFSIZ]; Lire : char line[BUFSIZ]; Page 193 -------- Dans /* recherche de la clé */ Au lieu de : if('=' == p2[0]) Lire : if('=' == p1[0]) Pages 193 et 194 ---------------- Dans /* Copie de la clé */ Au lieu de : if(NULL == (key = malloc (l * sizeof *key))) [...] memcpy (key, p1, l - 1); Lire : if(NULL == (key = malloc ( (l+1) * sizeof *key))) [...] memcpy (key, p1, l); Page 228 et page 230 -------------------- Au lieu de : if (-1 == r recvfrom (socket_id, buffer, sizeof (buffer) - 1, 0, (struct sockaddr *) &sockname, &sockaddr_in_len))) Lire : if (-1 == (r = recvfrom (socket_id, buffer, sizeof (buffer) - 1, 0, (struct sockaddr *) &sockname, &sockaddr_in_len))) Page 230 -------- Au lieu de : if (-1 == r recvfrom (socket_id, buffer, sizeof (buffer) - 1, 0, (struct sockaddr *) &sockname, &sockaddr_in_len))) Lire : if (-1 == (r = recvfrom (socket_id, buffer, sizeof (buffer) - 1, 0, (struct sockaddr *) &sockname, &sockaddr_in_len))) Pages 451 et 452 ---------------- Au lieu de : char*buffer Lire : char*buffer; Pages 453 et 454 ---------------- Au lieu de : char *result Lire : char *result;