Casper.Dik@xxxxxxx wrote: >>I can see that that would be useful but it would fail to comply with >>the POSIX standard, which specifies: >> >> The find utility shall be able to descend to arbitrary >> depths in a file hierarchy and shall not fail due to path >> length limitations (unless a path operand specified by the >> application exceeds {PATH_MAX} requirements) > > But PATH_MAX is limited and the number of file descriptors is perhaps > not. > > (On Solaris, PATH_MAX is 1024 so you require at most 512 file > descriptors to keep the stack of directories: 512 is less than the > default hard limit of 65536 file descriptors per process [S9, S8 > and before used 1024, still >> 512) My reading of the above paragraph from the POSIX standard is that find is required to be able to traverse arbitrary depths, even when the resulting path length exceeds PATH_MAX. On my Solaris 9 system, the default file descriptor limit appears to be 256. I am genuinely surprised that Solaris still has such a relatively small PATH_MAX. Linux has 4096. Like other arbitrary system limits of its ilk, PATH_MAX is evil, and is one of the more persuasive arguments for getting rid of the C language and its fixed-size stack-allocated buffers. char path[PATH_MAX]; /* considered harmful */ Martin > Casper