Mytest.c:251:2: error: too few arguments to function 'statfs'
####
my @a;
@a = &Mytest::my_statfs("/blech"); # Test non-existent file/directory
ok( scalar(@a) == 1 && $a[0] == 2 );
@a = &Mytest::my_statfs("/"); # Test existing file/directory
is ( scalar(@a), 7 );
####
#include
...
void
statfs(path)
char * path
INIT:
int i;
struct statfs buf;
PCODE:
i = statfs(path, &buf);
if (i == 0) {
XPUSHs(sv_2mortal(newSVnv(buf.f_bavail)));
XPUSHs(sv_2mortal(newSVnv(buf.f_bfree)));
XPUSHs(sv_2mortal(newSVnv(buf.f_blocks)));
XPUSHs(sv_2mortal(newSVnv(buf.f_bsize)));
XPUSHs(sv_2mortal(newSVnv(buf.f_ffree)));
XPUSHs(sv_2mortal(newSVnv(buf.f_files)));
XPUSHs(sv_2mortal(newSVnv(buf.f_type)));
} else {
XPUSHs(sv_2mortal(newSVnv(errno)));
}
####
XS_EUPXS(XS_Mytest_statfs)
{
dVAR; dXSARGS;
if (items != 1)
croak_xs_usage(cv, "path");
{
char * path = (char *)SvPV_nolen(ST(0))
;
#line 43 "Mytest.xs"
int i;
struct statfs buf;
PCODE:
i = statfs(path, &buf);
if (i == 0) {
XPUSHs(sv_2mortal(newSVnv(buf.f_bavail)));
XPUSHs(sv_2mortal(newSVnv(buf.f_bfree)));
XPUSHs(sv_2mortal(newSVnv(buf.f_blocks)));
XPUSHs(sv_2mortal(newSVnv(buf.f_bsize)));
XPUSHs(sv_2mortal(newSVnv(buf.f_ffree)));
XPUSHs(sv_2mortal(newSVnv(buf.f_files)));
XPUSHs(sv_2mortal(newSVnv(buf.f_type)));
} else {
XPUSHs(sv_2mortal(newSVnv(errno)));
}
#line 250 "Mytest.c"
statfs(path);
}
XSRETURN_EMPTY;
}