Date: Thu, 8 Jul 2004 16:04:40 +1000 (EST) From: Bruce Evans <bde@zeta.org.au> To: Garrett Wollman <wollman@khavrinen.lcs.mit.edu> Cc: src-committers@FreeBSD.org Subject: Re: cvs commit: src/lib/libc/sys pathconf.2 Message-ID: <20040708154704.L13116@gamplex.bde.org> In-Reply-To: <200407080133.i681XnxH041060@khavrinen.lcs.mit.edu> References: <200407072047.i67Klgqu082069@repoman.freebsd.org> <20040707233455.GI95729@elvis.mu.org> <200407080133.i681XnxH041060@khavrinen.lcs.mit.edu>
next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, 7 Jul 2004, Garrett Wollman wrote: > <<On Wed, 7 Jul 2004 16:34:55 -0700, Alfred Perlstein <alfred@freebsd.org> said: > > > if _PC_NO_TRUNC returns 1 then an application should assume that > > names longer than 14 characters (_POSIX_NAME_MAX) are truncated??? > > No. Under obsolete versions of POSIX, if {NO_TRUNC} is nonzero, an > application should assume that pathname components longer than > {NAME_MAX} are not truncated, but instead result in the [ENAMETOOLONG] > error. Under the current version of POSIX, [ENAMETOOLONG] is > mandatory for all systems; this was an obsolete option to allow for > the behavior of the V7 filesystem, which has been phased out. This doesn't apply to FreeBSD. Truncation is still useful (and used) for old non-POSIX file systems like msdosfs: % static int % msdosfs_pathconf(ap) % struct vop_pathconf_args /* { % struct vnode *a_vp; % int a_name; % int *a_retval; % } */ *ap; % { % struct msdosfsmount *pmp = VTODE(ap->a_vp)->de_pmp; % % switch (ap->a_name) { % ... % case _PC_NO_TRUNC: % *ap->a_retval = 0; % return (0); % ... % } htpfs and ntpfs also return 0 for _PC_NO_TRUNC, possibly for less reason. AFAIK they don't have too-small file name lengths, but they may need to truncate names because that is what their native operating system does. Bruce
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040708154704.L13116>