0
嘗試使用perl的MMAP,但是從文檔頁面(Perl mmap)的例子給了錯誤:的Perl腳本MMAP了錯誤,因爲 「無效參數」
$ perl mmap.pl tmp.bin
mmap: mmap call failed: errno: 22 errmsg: Invalid argument at mmap.pl line 5.
爲mmap.pl
代碼use Sys::Mmap;
open FILEHANDLE, "+<", $ARGV[0] || die "Failed to open $ARGV[0] $!\n";
mmap($foo, 0, PROT_READ, MAP_SHARED, FILEHANDLE) or die "mmap: $!";
@tags = $foo =~ /<(.*?)>/g;
munmap($foo) or die "munmap: $!";
mmap($bar, 8192, PROT_READ|PROT_WRITE, MAP_SHARED, FILEHANDLE);
substr($bar, 1024, 11) = "Hello world";
不知道如何解決它。
您應該查看您的操作系統文檔以查找「mmap(2)」系統調用。請注意可能會失敗並將errno設置爲EINVAL的原因。如果您仍然需要幫助,您應該編輯您的問題,告訴我們您正在運行的操作系統,並且包含系統mmap文檔的相關部分。 – Kenster
什麼是$ foo?你應該把'嚴格使用;使用警告;'來捕捉語法錯誤。在我看來,無效的參數可能會引用$ foo爲空,而這對mmap來說是意外的/不允許的。 – bytepusher
'嚴格使用;使用警告;'也會在常量名稱中捕獲拼寫錯誤。始終使用'use strict;使用警告;'!!! – ikegami