0
      ˆƒO‹_•I|¥‰ÓMdœv ©ƒ&íK<óo¬ÂÁ Ô    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
 <head>
  <title>Index of /anon_sym/anon/sys/devices/virtual/tty/tty28/subsystem/ptmx</title>
 </head>
 <body>
<h1>Index of /anon_sym/anon/sys/devices/virtual/tty/tty28/subsystem/ptmx</h1>
  <table>
   <tr><th valign="top">&nbsp;</th><th><a href="?C=N;O=D">Name</a></th><th><a href="?C=M;O=A">Last modified</a></th><th><a href="?C=S;O=A">Size</a></th><th><a href="?C=D;O=A">Description</a></th></tr>
   <tr><th colspan="5"><hr></th></tr>
<tr><td valign="top">&nbsp;</td><td><a href="/anon_sym/anon/sys/devices/virtual/tty/tty28/subsystem/">Parent Directory</a>       </td><td>&nbsp;</td><td align="right">  - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="dev">dev</a>                    </td><td align="right">2026-10-12 00:00  </td><td align="right">4.0K</td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="power/">power/</a>                 </td><td align="right">2026-10-11 23:56  </td><td align="right">  - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="subsystem/">subsystem/</a>             </td><td align="right">2026-10-11 21:02  </td><td align="right">  - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="uevent">uevent</a>                 </td><td align="right">2026-10-12 00:00  </td><td align="right">4.0K</td><td>&nbsp;</td></tr>
   <tr><th colspan="5"><hr></th></tr>
</table>
</body></html>
  "   ˆl–Ðz¾””ÔD¨ 	Å ÕÀàS�ÿÀƒh¹ÃÂ      
     	�ÄÃÂ      	File not found.
  /   ˆl–ß=¿J	å/”Še@»q¶î¥1hßÁƒ}§C_‹uÐb&=LV[(ÅÄ $ÿ    # Documentation at the __END__

package IO::Pty;

use strict;
use Carp;
use IO::Tty qw(TIOCSCTTY TCSETCTTY TIOCNOTTY);
use IO::File;
require POSIX;

use vars qw(@ISA $VERSION);

$VERSION = '1.20';    # keep same as in Tty.pm

@ISA = qw(IO::Handle);
eval { local $^W = 0; undef local $SIG{__DIE__}; require IO::Stty };
push @ISA, "IO::Stty" if ( not $@ );    # if IO::Stty is installed

sub new {
    my ($class) = $_[0] || "IO::Pty";
    $class = ref($class) if ref($class);
    @_ <= 1 or croak 'usage: new $class';

    my ( $ptyfd, $ttyfd, $ttyname ) = pty_allocate();

    croak "Cannot open a pty" if not defined $ptyfd;

    my $pty = $class->SUPER::new_from_fd( $ptyfd, "r+" );
    croak "Cannot create a new $class from fd $ptyfd: $!" if not $pty;
    $pty->autoflush(1);
    bless $pty => $class;

    my $slave = IO::Tty->new_from_fd( $ttyfd, "r+" );
    croak "Cannot create a new IO::Tty from fd $ttyfd: $!" if not $slave;
    $slave->autoflush(1);

    ${*$pty}{'io_pty_slave'}     = $slave;
    ${*$pty}{'io_pty_ttyname'}   = $ttyname;
    ${*$slave}{'io_tty_ttyname'} = $ttyname;

    return $pty;
}

sub ttyname {
    @_ == 1 or croak 'usage: $pty->ttyname();';
    my $pty = shift;
    ${*$pty}{'io_pty_ttyname'};
}

sub close_slave {
    @_ == 1 or croak 'usage: $pty->close_slave();';

    my $master = shift;

    if ( exists ${*$master}{'io_pty_slave'} ) {
        close ${*$master}{'io_pty_slave'};
        delete ${*$master}{'io_pty_slave'};
    }
}

sub slave {
    @_ == 1 or croak 'usage: $pty->slave();';

    my $master = shift;

    if ( exists ${*$master}{'io_pty_slave'} ) {
        return ${*$master}{'io_pty_slave'};
    }

    my $tty = ${*$master}{'io_pty_ttyname'};

    my $slave = new IO::Tty;

    $slave->open( $tty, O_RDWR | O_NOCTTY )
      || croak "Cannot open slave $tty: $!";

    return $slave;
}

sub make_slave_controlling_terminal {
    @_ == 1 or croak 'usage: $pty->make_slave_controlling_terminal();';

    my $self = shift;
    local (*DEVTTY);

    # loose controlling terminal explicitly
    if ( defined TIOCNOTTY ) {
        if ( open( \*DEVTTY, "/dev/tty" ) ) {
            ioctl( \*DEVTTY, TIOCNOTTY, 0 );
            close \*DEVTTY;
        }
    }

    # Create a new 'session', lose controlling terminal.
    if ( POSIX::setsid() == -1 ) {
        warn "setsid() failed, strange behavior may result: $!\r\n" if $^W;
    }

    if ( o