Maison >développement back-end >Golang >Comment faire croire à un programme qu'il s'exécute dans un terminal ?
Comment émuler un TTY pour un programme
Lorsqu'un programme interagit avec stdin, il peut se comporter différemment selon qu'il s'agit ou non d'un terminal ou un tuyau. Pour surmonter ce problème, vous pouvez utiliser une technique appelée émulation de « pseudoterminal » (Pty) pour faire apparaître votre programme comme un TTY.
Une implémentation est fournie dans le code C ci-dessous, en utilisant la fonction forkpty. Ce code configure un pseudoterminal, crée un processus enfant pour exécuter la commande souhaitée et transmet en permanence sa sortie à la sortie standard.
#include <signal.h> #include <stdlib.h> #include <sysexits.h> #include <unistd.h> #include <util.h> pid_t child = 0; void sighandler(int signum) { if (child > 0) { killpg(child, signum); exit(signum); } } int main(int argc, char *argv[]) { if (argc 0 && FD_ISSET(master, &fds)) { bytes_read = read(master, buf, buf_size); if (bytes_read <p>En intégrant cette technique, votre programme peut interagir efficacement avec d'autres applications comme s'il fonctionnaient via un terminal.</p></util.h></unistd.h></sysexits.h></stdlib.h></signal.h>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!