• [^] # Re: strace

    Posté par (courriel, site web personnel) . En réponse au message comportement étrange en console. Évalué à 3.

    Faut croire qu'il y a quelque chose qui fait des trucs pas nets avec stdin et stdout avant le TCGETS (genre qui les ferment ?). Est-ce que tu arrives à reproduire le problème avec un programme du genre (à stracer aussi) ?

    #include <termios.h>
    #include <unistd.h>
    #include <stdio.h>
    #include <sys/ioctl.h>
    int main(void)
    {
     struct termios t;
     printf("%d: %d\n", 0, tcgetattr(0, &t));
     printf("%d: %d\n", 0, ioctl(0, TCGETS, &t));
     printf("%d: %d\n", 1, tcgetattr(1, &t));
     printf("%d: %d\n", 1, ioctl(1, TCGETS, &t));
     return 0;
    }
    
    

    L'étape suivante, serai d'examiner ce qui arrive avec les file descriptors 0 et 1 avant le premier ioctl() qui fait EINVAL. Le problème peut être (et est sans doute) avant le shell puisqu'il utilise les fds qui lui sont transmis par le terminal normalement.

    pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.