Cum funcționează această redirecționare stdout?

Codul de mai jos redirecționează stdout către un fișier fname și apoi redirecționează înapoi la stdout original. Funcționează bine pentru mine. Dar nu sunt capabil să înțeleg cum funcționează de fapt. Dacă cineva mă poate ajuta să înțeleg, îl voi prezenta.

    printf("\n This is console");
    fflush(stdout);
    fgetpos(stdout, &pos);
    fd = dup(fileno(stdout));
    freopen(fname, "a+", stdout);   

    printf("inside file op");  

    fflush(stdout);
    dup2(fd,fileno(stdout));
    close(fd);
    clearerr(stdout);
    fsetpos(stdout, &pos);
    printf("\nBack to Console");
5
задан Rudy Velthuis 7 August 2011 в 19:54
поделиться