File-Map
view release on metacpan or search on metacpan
lib/File/Map.xs view on Meta::CPAN
void S_map_file(pTHX_ SV* var, SV* filename, SV* mode, Off_t offset, SV* length_sv) {
STRLEN mode_len;
const char* mode_raw = SvPV(mode, mode_len);
if (memchr(mode_raw, ':', mode_len) == NULL) {
SV* newmode = sv_2mortal(newSVsv(mode));
sv_catpvs(newmode, ":raw");
mode_raw = SvPV(newmode, mode_len);
}
GV* gv = MUTABLE_GV(sv_2mortal(newSV_type(SVt_NULL)));
gv_init_pvn(gv, CopSTASH(PL_curcop), "__ANONIO__", 10, GV_ADDMULTI);
if (!do_openn(gv, mode_raw, mode_len, 0, 0, 0, NULL, &filename, 1))
Perl_croak(aTHX_ "Couldn't open file %s: %s", SvPV_nolen(filename), strerror(errno));
map_handle(var, IoIFP(GvIO(gv)), mode, offset, length_sv);
}
#define map_file(var, filename, mode, offset, length) S_map_file(aTHX_ var, filename, mode, offset, length)
static const map flags = {
{ STR_WITH_LEN("shared") , MAP_SHARED },
{ STR_WITH_LEN("private"), MAP_PRIVATE },
};
lib/File/ppport.h view on Meta::CPAN
do_magic_dump|5.006000||cVu
do_msgrcv|5.003007||Viu
do_msgsnd|5.003007||Viu
do_ncmp|5.015001||Viu
do_oddball|5.006000||Viu
dooneliner|5.006000||Viu
do_op_dump|5.006000||cVu
do_open|5.003007|5.003007|u
do_open6|5.019010||xViu
do_open9|5.006000|5.006000|du
do_openn|5.007001|5.007001|u
doopen_pm|5.008001||Viu
do_open_raw|5.019010||xViu
doparseform|5.005000||Viu
do_pmop_dump|5.006000||cVu
dopoptoeval|5.003007||Viu
dopoptogivenfor|5.027008||Viu
dopoptolabel|5.005000||Viu
dopoptoloop|5.005000||Viu
dopoptosub_at|5.005000||Viu
dopoptowhen|5.027008||Viu
( run in 0.702 second using v1.01-cache-2.11-cpan-49f99fa48dc )