Terry Lambert scribbled this message on Apr 5:
> > I was looking at the man page for opendir, and currently there isn't
> > a way to open a dir from a file descriptor... would this be a useful
> > addition to the opendir set of routines? or would this be a "wart" on
> > something that really shouldn't be touched?
> > the reason I ask is because of a program that I'm writing, and I don't
> > feel like having to pass the path to a subfunction, but I am passing
> > an open fd of the dir...
> How did you get the open fd of the dir?
fd=open("directory", O_RDONLY, 0);
then I pass fd to my function...
> Probably you should be passing around a DIR *, not an fd.
well.. I'm trying to make a generic interface that will handle the differt
types of files properly... i.e. after I open the "possible" file, the I
fstat the file.. and then, depending on the st_mode of the struct stat...
I call different functions...
> I admit that there is a discrepancy in the interface between
> the reflexive stdio "fdopen".
> If you are passing around the fd for fchdir, you should be able to
> reference the fd out of the dir struct. This would be an interface
> violation, too, but a minor one: there is a defined macro "dirfd(DIR *)"
> which returns the fd out of the DIR * in dirent.h, even though it
> isn't part of the POSIX definition.
yeh... I noticed that one... but as above it doesn't help me.. :(
> The reason, if you are interested, is that POSIX does not require a
> directory to be a normal file accessable through "open".
ahhh... that's a good reason that opendir doesn't have a fopendir or
> Probably a cleaner overall fix would be to get a "dichdir(DIR *)"
> defined, but that's not going to happen any time soon, if at all.
as I describe above... this won't help me any... thanks for the extra
info... opendir makes a bit more sense now... ttyl..
Cu Networking Modem/FAX: +1 541 683 6954
Live in Peace, destroy Micro$oft, support free software, run FreeBSD