當前位置:首頁 » Perl » perl syscall()函數

perl syscall()函數

perl syscall()函數例子,syscall()函數實例代碼 - 可讓Perl來直接調用相應的UNIX C係統調用。

yntax

syscall EXPR, LIST


定義和用法

可讓Perl來直接調用相應的UNIX C係統調用。它依賴於組的Perl的頭文件syscall.ph其中聲明所有這些調用的存在。 正常執行的腳本h2ph,Perl安裝時設置了syscall.ph文件。每次調用都具有相同的名稱,相當於UNIX係統調用的“SYS_”前綴。 由於這些調用實際上是通過控製相關的C係統,函數必須小心傳遞參數。

作為參數傳遞給syscall()列表的第一個元素,本身是相應的UNIX係統調用(即“SYS_”前綴)名稱。在列表中的下一個元素被解釋為這個調用的參數。傳遞C int類型的數值。傳遞的字符串值指向數組的指針。這些字符串的長度必須能夠應付任何分配到該在調用中的參數的值。

返回值

  • -1 - 係統調用失敗

  • 係統函數的返回值

例子

試試下麵的例子:

#!/usr/bin/perl -w
#by www.gitbook.net

require("syscall.ph");
$pid = syscall(&SYS_getpid);

print "PID of this process is $pid\n";

# To create directory use the following
$string = "newdir";
syscall( &SYS_mkdir, $string );

這將產生以下結果:

PID of this process is 16335