为系统调用getpagesize编写Sys :: Getpagesize Perl模块(手册页GETPAGESIZE(2))

时间:2013-06-21 17:39:46

标签: perl system-calls rhel perl-xs

我的任务是编写一个Perl模块,要求我使用Perl XS。我没有使用过Perl XS,但我查看了这里的文档:http://perldoc.perl.org/perlxs.html看起来我需要getpagesize系统调用的C源代码。我尝试通过getpagesize.c寻找yum,就像这样......

$ sudo yum provides */getpagesize.c 

...但我似乎没有提供getpagesize.c的任何RPM。

那里的任何人都可以帮助我走出我似乎已经进入的沟渠吗?

由于

2 个答案:

答案 0 :(得分:3)

为什么您认为需要getpagesize函数的源代码?您只需链接到系统的版本。我没有尝试过,但这样的事情应该有效:

#include "EXTERN.h"
#include "perl.h"
#include "XSUB.h"
#include <unistd.h> /* man 2 getpagesize says to use this */

MODULE = Sys::Getpagesize PACKAGE = Sys::Getpagesize

int
getpagesize()

但在这种情况下,您根本不需要编写XS。 man 2 getpagesize说“便携式应用应该使用sysconf(_SC_PAGESIZE)代替getpagesize()。”

Perl的标准POSIX模块已经sysconf

use POSIX qw(sysconf _SC_PAGESIZE);
print sysconf( _SC_PAGESIZE );

答案 1 :(得分:1)

你应该能够做到:

getconf PAGESIZE