Página 1 de 1

Cómo saber el pts (pseudo-terminal) que se esta usando?

NotaPublicado: 2007-04-18 19:04 @836
por creating021
Hola, que tal?

Bien, en The OpenGroup vi que con stdlib, usando la funcion ptsname se puede saber el nombre de la pts (pseudo terminal slave) y queria saber si con perl, usando ioctl, termios o algo similiar se podría saber el nombre.

También quiero saber si por demdio de Perl se puede saber el nombre, o el path del pts usado (si estoy en /dev/pts/0 o /dev/pts/1... ).

Resulta que tengo que pasar unos mensajes a cada terminal, eso ya lo he hecho por medio de pts pero necesito que salga el nombre de la terminal donde salió el mensaje tal como hace el comando wall.

He esta buscando y encontr algo para tener en cuanta (si es Unix98 pty naming) pero no he encotrado nada para hacerlo en Perl (usando módulos del core, ya vi IO::Pty pero no es externo y muy grande para "compilar" :( ).

Cualquier ayuda se agradece :D

NotaPublicado: 2007-04-25 16:00 @708
por creating021
Estoy más mal de lo que creí :cry:
Resulta que ptsname, de libc (stdlib.h) sólo retorna el nombre del dispositivo:

Código: Seleccionar todo
int fd_master;
char *path;
   ...

   fd_master = open("/dev/ptym/clone", O_RDONLY);
   path = ptsname(fd_master);

Como ven, en este caso se esta usando una pseudo teminal master y se usa open antes de usar ptsname... eso quiere decir que el programador ya sabe el nombre de por si.

Aún seguiré buscando y ahora me pongo a estudiar el .XS de IO::Pty

NotaPublicado: 2007-11-24 13:32 @605
por creating021
Je, je resulta que lo puedo hacer con POSIX:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
use POSIX;
print POSIX::ttyname(0) if -t;
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4

:roll: bueno, al menos dice la tty en la que estás :)