Re: Чем достучаться до модема из текстовой консоли?
On Fri, Mar 23, 2007 at 09:21:11PM +0300, Artem Chuprina wrote:
> Peter Teslenko -> debian-russian@lists.debian.org @ Fri, 23 Mar 2007 21:14:26 +0300:
> PT> Чем можно достучаться до модема из консоли при отсутствии cu и
> minicom'а?
> Перловым скриптом. Тикловым скриптом. В ограниченных пределах - даже
> cat.
Пан биэсдишник? Стыдитесь. (me это к тому, что надо тогда, хотя бы, в
perlopentut ткнуть).
2OP:
=== contents (/usr/local/sbin/do.dip) goes below ===
#!/usr/bin/perl
use strict;
use warnings;
use Fcntl;
my $NL = "\015";
my $LF = "\012";
my $ttys = shift(@ARGV);
$ttys =~ m#.*/([^/]+)#;
my $lock = qq(/var/lock/LCK..$1);
sysopen(TTYLOCK, $lock, O_WRONLY | O_EXCL | O_CREAT) or
die qq(can't UUCP-lock $ttys: $!\n);
syswrite(TTYLOCK, sprintf(qq(%10s\n), $$)) or
die qq(can't fill UUCP-lock: $!\n);
close(TTYLOCK);
sysopen(TTYSI, $ttys, O_RDWR | O_NDELAY | O_NOCTTY) or
die "can't open $ttys (reading): $!\n";
sysopen(TTYSO, $ttys, O_WRONLY | O_NDELAY | O_NOCTTY) or
die "can't open $ttys (writing): $!\n";
#my $foo = select(TTYSO); $| = 1; select($foo);
while(@ARGV) {
print(TTYSO shift(@ARGV), $NL);
sleep(1);
#$/ = '';
print(STDOUT <TTYSI>);
};
close(TTYSO) or
die "can't close $ttys (writing): $!\n";
close(TTYSI) or
die "can't close $ttys (reading): $!\n";
unlink($lock);
exit;
=== contents (/usr/local/sbin/do.dip) gone above ===
=== contents (/usr/local/sbin/do.dip /dev/ttyS0 'AT' 'ATI1' '') goes below ===
AT
OK
ATI1
87D3
OK
=== contents (/usr/local/sbin/do.dip /dev/ttyS0 'AT' 'ATI1' '') gone above ===
Скрипт тупой до безобразия, поэтому надо иногда (всегда?) добавлять
заглушку (терминатор!?)
--
Torvalds' goal for Linux is very simple: World Domination
Reply to: