Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad
 

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

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Experto
Mensaje Mie Abr 18, 2007 6:04 pm
creating021
Vive para Perl en Español
Vive para Perl en Español
Registrado: 23 Feb 2006
Mensajes: 469
Ubicación: Frente al monitor
Cómo saber el pts (pseudo-terminal) que se esta usando? Responder citando

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" Sad ).

Cualquier ayuda se agradece Very Happy
Mensaje Mie Abr 25, 2007 3:00 pm
creating021
Vive para Perl en Español
Vive para Perl en Español
Registrado: 23 Feb 2006
Mensajes: 469
Ubicación: Frente al monitor
Responder citando

Estoy más mal de lo que creí Crying or Very sad
Resulta que ptsname, de libc (stdlib.h) sólo retorna el nombre del dispositivo:

Código:
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
Mensaje Sab Nov 24, 2007 12:32 pm
creating021
Vive para Perl en Español
Vive para Perl en Español
Registrado: 23 Feb 2006
Mensajes: 469
Ubicación: Frente al monitor
Responder citando

Je, je resulta que lo puedo hacer con POSIX:
Perl:
use POSIX;
print POSIX::ttyname(0) if -t;

Rolling Eyes bueno, al menos dice la tty en la que estás Smile
Publicar nuevo tema   Responder al tema    Foros de discusión -> Experto Todas las horas son GMT - 6 Horas
Página 1 de 1



Powered by phpBB © 2001, 2005 phpBB Group