• [^] # Re: true=0 ?

    Posté par . En réponse au journal Challenge: Écrire la plus petite implémentation de /bin/true. Évalué à 10. Dernière modification le 07 avril 2022 à 14:54.

    La signification des codes de 1 à 254 est déterminée par le programme.

    En fait, pas tout à fait. Il vaut mieux rester de 0 à 127. Sous Linux, généralement, si un processus est tué par un signal, tu retrouves le code de retour : 128 + numéro du signal.

    capello:~$ cat >toto.c
    int main()
    {
    while(1);
    return 0;
    }
    capello:~$ gcc toto.c
    capello:~$ ./a.out
    ^C
    capello:~$ echo $?
    130
    capello:~$ kill -l
     1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP
     6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1
    11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM
    16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP
    21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ
    26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR
    31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3
    38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8
    43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
    48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
    53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7
    58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2
    63) SIGRTMAX-1 64) SIGRTMAX
    capello:~$

    Ici, 130 == 128 + 2 => SIGINT qui correspond bien au <Ctrl>+c.

    Édit: Arg, grillé !