Date: Fri, 22 Jan 1999 22:32:55 +1100 From: Bruce Evans <bde@zeta.org.au> To: current@FreeBSD.ORG, netchild@wurzelausix.CS.Uni-SB.DE Subject: Re: readdir & cd9660 & direntp->d_type == bug (more) Message-ID: <199901221132.WAA17787@godzilla.zeta.org.au>
next in thread | raw e-mail | index | archive | help
>attached is the source of a test program. > >With the CD of my ISDN card it produces: > >{0} <FreeBSD 4.0-CURRENT> >(15) netchild@ttyp1 > ./dirtest /cdrom > >/cdrom: >. (type: unknown) >.. (type: unknown) >autorun.inf (type: unknown) This is because the cd9660 file system doesn't implement d_type. >{0} <FreeBSD 4.0-CURRENT> >(16) netchild@ttyp1 > ls -l /cdrom >total 173 >-r-xr-xr-x 1 root wheel 54 22 Mai 1998 autorun.inf ls works because it stats the file. >#define _POSIX_SOURCE > >#include <sys/types.h> >#include <dirent.h> >... > while((dent_p = readdir(dir_p))) > { > printf("%-40s (type: %s)\n", dent_p->d_name, types[dent_p->d_type]); > } This probably shouldn't compile, since d_type isn't in POSIX.1. POSIX.1 only guarantees d_name in struct dirent. Names beginning with d_ are reserved for use in <dirent.h>, but FreeBSD normally attempts to give strict POSIX.1 if _POSIX_SOURCE is defined. Bruce To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199901221132.WAA17787>