IO-Dirent

 view release on metacpan or  search on metacpan

Dirent.xs  view on Meta::CPAN

MODULE = IO::Dirent          PACKAGE = IO::Dirent

#ifdef  DT_DIR
#define USE_D_NAME
#endif

SV *
readdirent(dirp)
        DIR             *dirp;
  PROTOTYPE: *
  PPCODE:
        Direntry_t      *dent;
	while ((dent = (Direntry_t *)readdir(dirp))) {
            HV *hdent;
	    hdent = (HV *)sv_2mortal((SV *)newHV());
#ifdef DIRNAMLEN /* from perl's config.h */
	    hv_store(hdent, "name",    4, newSVpv(dent->d_name, dent->d_namlen), 0);
#else
	    hv_store(hdent, "name",    4, newSVpv(dent->d_name, 0),              0);
#endif /* DIRNAMLEN */
#ifdef USE_D_NAME

JUNK  view on Meta::CPAN

  PREINIT:
        IO              *io;
  INIT:
        DIR             *dirp = IoDIRP(sv_2io(dirh));
        Direntry_t      *dent;
#ifndef USE_D_NAME
        int             dirfp = fileno(dirfd(IoDIRP(sv_2io(dirh))));
        int             fdsave;  /* cwd to return to */
        struct stat     sb;
#endif
  PPCODE:
#ifndef USE_D_NAME
        /* save an fd of our current working directory */
        if( fdsave = open(".", O_RDONLY) < 0 ) {
            XSRETURN_UNDEF;
        }

        if( dirfp ) {
            fprintf(stderr, "ok!\n");
        }
        else {



( run in 0.436 second using v1.01-cache-2.11-cpan-71847e10f99 )