Après la recherche, il semble que l'ascii de l'EOF soit -1
, mais comment echo
le sortir?
Mon but est de tester si cela se comporte de la même manière que d'appuyer ctrl-d
si je viens de echo
sortir EOF
.
Il n'y a aucun moyen de reproduire un EOF. Un EOF ne peut être généré qu'en atteignant la fin d'un fichier ou en appelant la pression de touche liée au eof
paramètre du terminal ( CtrlDpar défaut) lorsque le fichier en cours de lecture est lié au terminal.
EOF
défini comme-1
dans stdio.h? pourquoi ne peut-il pas l'écho si nous connaissons sa valeur ascii?int
avec la valeur -1 (ou 4294967295 si nous considérons la version non signée) ne peut de toute façon pas être un caractère car les caractères ne peuvent avoir qu'une valeur de 0 à 255 inclus.int
en premier lieu?fgetc(3)
page de manuel.En bash, vous pouvez écrire
exec 1>&-
afin de fermer le descripteur de fichier appelé stdout.Comme Ignacio l'a déjà dit, EOF n'est pas un personnage, donc la question de savoir comment "faire écho à EOF" n'a aucun sens en premier lieu. Vous pouvez faire écho à des caractères (octets) ou fermer un descripteur de fichier, mais vous ne pouvez jamais faire écho à un EOF.
la source