[Ecls-list] directory function and stat system calls

Robert Dodier robert.dodier at gmail.com
Fri Dec 18 07:01:06 UTC 2009

On 12/17/09, Juan Jose Garcia-Ripoll
<juanjose.garciaripoll at googlemail.com> wrote:
> On Wed, Dec 16, 2009 at 6:14 AM, Robert Dodier

> An unfortunate mistake: DIRECTORY used stat() on all entries in a directory,
> not only those that matched the mask. It was just a matter of switching
> lines. Now things are better. Thanks a lot for reporting.

> $ echo '(directory "/Users/jjgarcia/tmp/")(quit)' > foo.lsp; sudo dtrace -n
> 'pid$target::safe_stat:entry  { printf("%s\n", copyinstr((uintptr_t)arg0));
> }' -c "ecl -norc -load foo"
> dtrace: description 'pid$target::safe_stat:entry  ' matched 1 probe
> ;;; Loading #P"/Users/jjgarcia/foo.lsp"
> dtrace: pid 39532 has exited
> CPU     ID                    FUNCTION:NAME
>   0  19180                  safe_stat:entry jjgarcia
>   0  19180                  safe_stat:entry tmp

Hmm. I updated from CVS and I got r1.100 src/d/unixfsys.d
which has the modified code. I did a clean build,
but I get the same behavior as before.

For the record, I'm looking at the output of strace,
not dtrace, which appears to be something else.
I don't know what safe_stat is; I'm guessing it is a library
function instead of a system call and, therefore,
not immediately relevant. (I'm interested in the calls to stat64.)

Thanks for your help,

Robert Dodier

More information about the ecl-devel mailing list