• # Re: C

    Posté par . En réponse au journal C. Évalué à 1.

    Voici un bout de code qui compile et qui montre le probleme (enfin, je suis pas sûr)
    #include <stdio.h>
    #include <unistd.h>
    #include <sys/types.h>
    #include <sys/stat.h>
    #include <fcntl.h>

    int main(void)
    {
    int p;

    p = open("plouf", O_CREAT | O_WRONLY | O_TRUNC);
    close(STDOUT_FILENO); /* inutile, dup2 est sensé faire un close() anyway */
    dup2(p, STDOUT_FILENO);
    close(p);
    write(STDOUT_FILENO, "prout\n", 6); /* marche */
    printf("prout2\n"); /* marche pas */
    close(STDOUT_FILENO); /* amusant :
    si on commente cette ligne, le printf
    fonctionne. */

    return 0;
    }