此,不幸的是,不工作:perl:在內存中的文件句柄sysread?
my $input = "this is a test";
open(my $fh, "<", \$input);
my $n = sysread($fh, $buf, 4); # want $n == 4, $buf eq 'this'
與read
作品更換sysread
預期。
這是預期嗎?它可以工作嗎?我錯過了什麼嗎?
此,不幸的是,不工作:perl:在內存中的文件句柄sysread?
my $input = "this is a test";
open(my $fh, "<", \$input);
my $n = sysread($fh, $buf, 4); # want $n == 4, $buf eq 'this'
與read
作品更換sysread
預期。
這是預期嗎?它可以工作嗎?我錯過了什麼嗎?
sysread之後,變量$!包含「壞文件描述符」?那麼你可能遇到過bug 72428「sysread不能在一個標量的文件句柄上工作」(https://rt.perl.org/rt3/Public/Bug/Display.html?id=72428)
不過,我不太清楚爲什麼或如果你真的想這樣做。
my $input = "this is a test";
open(my $fh,'-|',"echo $a"); # open a pipe instead and echo the string
my $n = sysread($fh,$buf,4) or warn $!;
需要注意的是一個失敗的sysread執行設置$!
這樣你就可以檢查錯誤。
感謝您的參考! – ErikR