As part of a translator I'm working on, I'm calling dir_readdir from fs.h
on the
underlying file of the translator. This works except that the `struct
direct`s returned
in the data_t arg only contain the first four bytes of the `direct.d_name`
field. The
`d_namlen` field is correct. A google search didn't turn up anything about
this in
the Hurd or glibc, but I found this page[1] that says a dirent (which is
what direct
is aliased to in glibc) only contains space for the first four bits. Space
for the name
has to be allocated in addition to the space needed for struct dirent. Is
that what's
happening in my case? And if so, is there a way to provide that space to my
call
to dir_readdir so it provides full file names? From what I can tell it
allocates its
own storage for the data_t pointer it writes to.


[1]:
http://www.qnx.com/developers/docs/6.5.0SP1.update/com.qnx.doc.neutrino_lib_ref//d/dirent.html


*Andrew Eggenberger*

Reply via email to