V
Vivek.M
Help! Aid! Assist! I get:
background 4 -1 16931
System returned -1
This is on a OpenBSD grex.cyberspace.org 3.8 GENERIC#0 i386. I ssh to
the box. I am trying to write a program that grabs "tell messages" to
my terminal /dev/ttypE (pseudo-terminal). /dev/tty should point to my
controlling terminal.
Why is ioctl failing? Why! Oh! Why! I'm rather new to Perl and Unix so
please tolerate my idiocy.
#!/usr/bin/perl
use POSIX;
open LOG, '>>/c/v/i/vivekm1234/log' or die "Error log file\n";
open TTY, "/dev/tty" or die "error opening tty\n";
defined(my $pid = fork) or die "Can't fork: $!";
exit if $pid;
sleep 5;
setsid or die "Can't start a new session: $!";
### DEBUG ###
$fileno = fileno(TTY);
$tpgrp = tcgetpgrp(fileno(TTY));
$pgrp = getpgrp();
if ($tpgrp == $pgrp) {
print "foreground $tpgrp $pgrp\n";
} else {
print "background $fileno $tpgrp $pgrp\n";
}
### END DEBUG ###
require '/usr/libdata/perl5/site_perl/i386-openbsd/sys/ioctl.ph';
$getp = &TIOCSCTTY or die "NO TIOCSCTTY";
my $null;
$retval=ioctl(TTY, $getp, $null) || -1;
printf "System returned %d\n", $retval;
close LOG;
close TTY;
background 4 -1 16931
System returned -1
This is on a OpenBSD grex.cyberspace.org 3.8 GENERIC#0 i386. I ssh to
the box. I am trying to write a program that grabs "tell messages" to
my terminal /dev/ttypE (pseudo-terminal). /dev/tty should point to my
controlling terminal.
Why is ioctl failing? Why! Oh! Why! I'm rather new to Perl and Unix so
please tolerate my idiocy.
#!/usr/bin/perl
use POSIX;
open LOG, '>>/c/v/i/vivekm1234/log' or die "Error log file\n";
open TTY, "/dev/tty" or die "error opening tty\n";
defined(my $pid = fork) or die "Can't fork: $!";
exit if $pid;
sleep 5;
setsid or die "Can't start a new session: $!";
### DEBUG ###
$fileno = fileno(TTY);
$tpgrp = tcgetpgrp(fileno(TTY));
$pgrp = getpgrp();
if ($tpgrp == $pgrp) {
print "foreground $tpgrp $pgrp\n";
} else {
print "background $fileno $tpgrp $pgrp\n";
}
### END DEBUG ###
require '/usr/libdata/perl5/site_perl/i386-openbsd/sys/ioctl.ph';
$getp = &TIOCSCTTY or die "NO TIOCSCTTY";
my $null;
$retval=ioctl(TTY, $getp, $null) || -1;
printf "System returned %d\n", $retval;
close LOG;
close TTY;