Re: Possible problem with readdir() and/or lstat()
Re: Possible problem with readdir() and/or lstat()
- Subject: Re: Possible problem with readdir() and/or lstat()
- From: "John Hayes" <email@hidden>
- Date: Fri, 30 Mar 2007 15:00:56 -0700
entry->d_name is relative to dir so the lstat() call is failing. You
are displaying the result from the lstat("..") call.
-john
On 3/30/07, Jeff Sparks <email@hidden> wrote:
[Apologies for the double-post; I just realized darwin-userlevel was
the wrong group for this.]
% cat test.c
#include <sys/stat.h>
#include <dirent.h>
#include <stdio.h>
#include <assert.h>
int main( int argc, char** argv )
{
DIR* dir ;
struct dirent* entry ;
struct stat buf ;
assert(argc == 2) ;
dir = opendir(argv[1]) ;
assert(dir != 0) ;
while( (entry = readdir(dir)) != 0 )
{
lstat(entry->d_name, &buf) ;
printf("name: %s --- S_ISDIR: %d\n",
entry->d_name,
S_ISDIR(buf.st_mode)) ;
}
return 0 ;
}
% gcc test.c -o test
% file *
file1: ASCII text
file2: ASCII text
somedir: directory
test: Mach-O executable i386
test.c: ASCII C program text
% ./test .
name: . --- S_ISDIR: 1
name: .. --- S_ISDIR: 1
name: file1 --- S_ISDIR: 0
name: file2 --- S_ISDIR: 0
name: somedir --- S_ISDIR: 1
name: test --- S_ISDIR: 0
name: test.c --- S_ISDIR: 0
% file somedir/*
somedir/file3: ASCII text
somedir/file4: ASCII text
somedir/somedir2: directory
% ./test somedir
name: . --- S_ISDIR: 1
name: .. --- S_ISDIR: 1
name: file3 --- S_ISDIR: 1
name: file4 --- S_ISDIR: 1
name: somedir2 --- S_ISDIR: 1
Note that file3 and file4 are not directories.
____________________________________________________________________________________
TV dinner still cooling?
Check out "Tonight's Picks" on Yahoo! TV.
http://tv.yahoo.com/
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Darwin-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Darwin-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden