Pourquoi setupterm met fin au programme?
Question
est un programme exemple de livre "A partir de Linux Programmation":
#include <stdio.h> #include <term.h> #include <curses.h> #include <stdlib.h> int main() { setupterm("unlisted", fileno(stdout), (int *)0); printf("Done.\n"); exit(0); }
L'exécution, je dois ce résultat:
./badterm 'unlisted': unknown terminal type.
Selon la définition de la fonction setupterm, il doit retourner 0: « Pas d'entrée correspondant dans terminfo base de données ». Au lieu de cela, le programme se termine. Pourquoi?
La solution
On dirait que vous lui avez demandé de le faire. De man setupterm
sur ma machine:
If errret is null, setupterm prints an error message upon finding an error and exits. Thus, the simplest call is: setupterm((char *)0, 1, (int *)0); which uses all the defaults and sends the output to stdout.
On peut supposer que si vous voulez gérer tout retour d'erreur vous-même, vous devez fournir une valeur de pointeur non NULL pour le paramètre errret
(troisième).
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow