Perl 程式設計/關鍵字/syscall
外觀
syscall使用列表的第一個元素(最多可包含 14 個引數)進行系統呼叫。剩餘的引數作為系統呼叫的引數一起傳遞。如果命令未實現,syscall會引發異常。
所有給定的數字引數將作為int傳遞。如果不是,則會傳遞指向字串值的指標。字串字面量(或其他只讀字串)不允許作為引數,因為 Perl 必須假設任何字串指標都可能被寫入。如果整數引數不是字面量,並且從未在數字上下文中解釋過,則可能需要新增0強制它們看起來像數字。
syscall模擬syswrite函式(反之亦然)
syscall返回被呼叫的系統呼叫返回的任何值。失敗時,-1將被返回,並且$!(errno) 會被設定。由於某些系統呼叫可以合法地返回-1, 0應該在呼叫之前分配給$!。
syscall(&SYS_pipe)返回它建立的管道的讀端的檔案號,但沒有辦法檢索另一端的的檔案號。這是一個可以透過使用pipe來避免的問題。
syscall NUMBER, LIST
require 'syscall.ph'; # You may need to run h2ph
$s = "Helloǃ\n";
syscall(&SYS_write, fileno(STDOUT), $s, length $s)
syscall |
sysopen |
sysread |
sysseek |
system |
syswrite
|