![]() |
|||
| | HOME | ご利用について | 推奨環境 | リンクに関して | 免責/規約 | お問合せ | ミスティーネット | リンク集 | | |||
|
HOME >> アルファベットで関数を検索 >> sysread
sysread [データを読み込む]
[関数の使い方・書式]
○ = sysread ☆,★,□[,■]
[関数の機能] ファイルハンドル☆に結び付けられたファイルなどから、□の長さ分のデータを読み込み、 スカラー変数★にそれを代入します。 オフセット■が指定されたいる場合、変数★の指定された位置以降に読みこんだデータをセットします。 スカラーへ数の長さよりもオフセット値の方が大きい場合、その位置まで \0 (ヌル文字) が詰め込まれます。 オフセット値がマイナスで同様の場合は、エラーとなり Offset outside string というメッセージが出力されます。 [書式の例] 1. sysread(FH, $buffer, $length);
サンプルソース
● 1文字単位の入力を補足する
use strict;
$| = 1;
for (1..4) {
my $got;
print "gimme: ";
$got = getone();
print "--> $got\n";
}
exit;
BEGIN {
use POSIX qw(:termios_h);
my ($term, $oterm, $echo, $noecho, $fd_stdin);
$fd_stdin = fileno(STDIN);
$term = POXIX::Termios->new();
$term->getattr($fd_stdin);
$echo = ECHO | ECHOK | ICANON;
$noecho = $oterm & ~$echo;
sub cooked {
$term->setlflag($oterm);
$term->setcc(VTIME, 0);
$term->setattr($fd_stdin, TCSANOW);
}
sub getone {
my $key = '';
$term->setlflag($noecho);
$term->setcc(VTIME, 1);
$term->setattr($fd_stdin, TCSANOW);
sysread(STDIN, $key, 1);
cooked();
return $key;
}
}
END { cooked() }
|
||||||||||||||||||||||||||||||||||