1

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

$ sudo yum provides */getpagesize.c 

...但我似乎没有任何 RPM 可以提供getpagesize.c.

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

谢谢

4

2 回答 2

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 );
于 2013-06-21T18:11:46.147 回答
1

你应该能够做到:

getconf PAGESIZE
于 2013-06-21T17:56:00.000 回答