2017-06-08 6 views
2

Je sais qu'ils ont différents descripteurs de fichiers, stdxx peut être redirigé.Quelle est la relation entre/dev/tty et stdin/stdout/stderr?

int tty_fd = open("/dev/tty", O_RDWR); 

Alors, quelle est la différence dans les codes ci-dessous (stdxx pas redirigé):

n = read(tty_fd, buf, sizeof(buf)); 
n = read(STDIN_FILENO, buf, sizeof(buf)); 

n = write(tty_fd, buf, sizeof(buf)); 
n = write(STDOUT_FILENO, buf, sizeof(buf)); 

est stdxx même un lien vers/dev/TTY?

+0

S'il n'y a pas de redirection, il n'y a pas de différence. Mais comment votre programme sait-il qu'il n'y a pas de redirection? – DyZ

Répondre

0

Sauf s'il n'y a pas de redirection, "/ dev/tty" serait utilisé pour afficher à la fois l'erreur standard ou la sortie standard. Vous pouvez afficher votre fichier stdout/stderr de façon sélective sur différents descripteurs de fichiers autres que/dev/tty.