On Mon, 29 Jul 2013 10:14:48 +0200 =?KOI8-R?B?z8zYx8Egy9LZ1sHOz9fTy8HR?= wrote: > The discussion is not about getcwd(). That is hopefully well done. The > discussion is about fgetcwd() (or getcwdat()) to determinate the full > path for a given file descriptor, or AT_FDCWD.
> The sad story is, as you have said on the chat, that some OSes have > neither /proc, libproc or fdopendir(), which is a shame. Either way, I > provide a patch for it. my thought was that on modern systems the getcwd() implementation could rely on fgetcwd() (even if only internally) to handle ENAMETOOLONG pwd paths so fgetcwd() would be useful in that respect even if it were a static for getcwd() but make sure its disabled on systems where *at() is emulated in ast > Olga > On Mon, Jul 29, 2013 at 10:08 AM, Glenn Fowler <[email protected]> wrote: > > > > On Mon, 29 Jul 2013 06:26:38 +0200 Irek Szczesniak wrote: > >> On Sun, Jul 28, 2013 at 1:54 AM, Roland Mainz <[email protected]> > >> wrote: > >> > Hi! > >> > > >> > ---- > >> > > >> > [Mainly for Glenn...] > >> > Is it Ok if I add |getcwdat()| (which is missing in the POSIX |*at()| > >> > APIs... but why ?) and |pathprogat()| to libast ? > > > >> Just don't use the libast getcwd(). It relies on chdir() and other > >> cruel stuff which is incompatible to threads ;-( > > > > on linux is uses the getcwd syscall via syscall(2) > > > > I'm guessing the only thread cruelty is using chdir() to get around pwd > > paths that > > would trigger ENAMETOOLONG -- the code was written before fdopendir() and > > fchdir() > > and *at() -- the chdir() part only kicks in on long pwd > > > > its time to revisit that code with a fallback to the cruel code on systems > > that don't have fdopendir() > > > > _______________________________________________ > > ast-developers mailing list > > [email protected] > > http://lists.research.att.com/mailman/listinfo/ast-developers > -- > , _ _ , > { \/`o;====- Olga Kryzhanovska -====;o`\/ } > .----'-/`-/ [email protected] \-`\-'----. > `'-..-| / http://twitter.com/fleyta \ |-..-'` > /\/\ Solaris/BSD//C/C++ programmer /\/\ > `--` `--` _______________________________________________ ast-developers mailing list [email protected] http://lists.research.att.com/mailman/listinfo/ast-developers
