⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 glob.xs

📁 source of perl for linux application,
💻 XS
字号:
#include "EXTERN.h"#include "perl.h"#include "XSUB.h"#include "bsd_glob.h"#define MY_CXT_KEY "File::Glob::_guts" XS_VERSIONtypedef struct {    int		x_GLOB_ERROR;} my_cxt_t;START_MY_CXT#define GLOB_ERROR	(MY_CXT.x_GLOB_ERROR)#include "const-c.inc"#ifdef WIN32#define errfunc		NULL#elsestatic interrfunc(const char *foo, int bar) {  return !(bar == EACCES || bar == ENOENT || bar == ENOTDIR);}#endifMODULE = File::Glob		PACKAGE = File::GlobBOOT:{    MY_CXT_INIT;}voiddoglob(pattern,...)    char *patternPROTOTYPE: $;$PREINIT:    glob_t pglob;    int i;    int retval;    int flags = 0;    SV *tmp;PPCODE:    {	dMY_CXT;	/* allow for optional flags argument */	if (items > 1) {	    flags = (int) SvIV(ST(1));	}	/* call glob */	retval = bsd_glob(pattern, flags, errfunc, &pglob);	GLOB_ERROR = retval;	/* return any matches found */	EXTEND(sp, pglob.gl_pathc);	for (i = 0; i < pglob.gl_pathc; i++) {	    /* printf("# bsd_glob: %s\n", pglob.gl_pathv[i]); */	    tmp = sv_2mortal(newSVpvn(pglob.gl_pathv[i],				      strlen(pglob.gl_pathv[i])));	    TAINT;	    SvTAINT(tmp);	    PUSHs(tmp);	}	bsd_globfree(&pglob);    }INCLUDE: const-xs.inc

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -