我的sysopen失敗:
sysopen(DEV, "/dev/ttyS0", O_NONBLOCK|O_RDONLY)
返回1,這是成功的!那麼,爲什麼$!有錯誤「非法尋求」在它(它是聯合國民主基金的調用之前)
before sysopen $!:
after sysopen $!: Illegal seek
編輯: 以下是完整的腳本:(使用實際O_NONBLOCK | O_RDONLY值2048)
#!/usr/bin/perl -w
use Device::SerialPort;
my $ob;
$ob = new Device::SerialPort("/dev/ttyS0");
print $!, "\n";
$! = 0;
my $ret = sysopen(DEV, "/dev/ttyS0", 2048);
print $!, "\n";
$! = 0;
print "ret from sysopen: ", $ret, "\n";
#my $dev = <DEV>;
打印出: ./filehandle.pl 非法謀取非法 從尋求 RET的sysopen:1
你是否看到'sysopen my $ ttyh,'/ dev/ttyS0',O_NONBLOCK | O_RDONLY或者'無法打開tty:$!';'? – Ether 2010-10-08 18:03:43
始終發佈完整的演示腳本。隔離的代碼行不顯示您創建的問題。 – 2010-10-08 18:43:39
以太網 - 我的錯誤與您的建議相同。 – dissectcode 2010-10-08 19:51:19