当前位置:首页 » 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