我的任务是编写一个Perl模块,要求我使用Perl XS。我没有使用过Perl XS,但我查看了这里的文档:http://perldoc.perl.org/perlxs.html看起来我需要getpagesize
系统调用的C源代码。我尝试通过getpagesize.c
寻找yum
,就像这样......
$ sudo yum provides */getpagesize.c
...但我似乎没有提供getpagesize.c
的任何RPM。
那里的任何人都可以帮助我走出我似乎已经进入的沟渠吗?
由于
答案 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