This is the mail archive of the
ecos-discuss@sourceware.org
mailing list for the eCos project.
Re: opendir with empty directory name?
Hi,
The fatfs implementation of opendir uses init_dirsearch() to check the
actual dir variable passed through the aforementioned.
Here's the function:
static void
init_dirsearch(fatfs_dirsearch_t *ds,
fatfs_disk_t *disk,
fatfs_node_t *dir,
const char *name)
{
ds->disk = disk;
if (NULL == dir)
ds->dir = disk->root;
else
ds->dir = dir;
ds->path = name;
ds->node = ds->dir;
ds->namelen = 0;
ds->last = false;
}
In my understanding of it the function would consider both "" & "." as
referring to the current directory since "." always refers to it this
way, so I would assume ... feature ^^.
More on this just to confirm you that the function I previously
mentioned seem to be the one actually called by the opendir()
implementation.
Take a look at "io/fileio/current/src/dir.cxx" for the actual opendir
function declaration.
The call is handled on line 127 here:
LOCK_FS( mte );
ret = mte->fs->opendir( mte, dir, name, file );
UNLOCK_FS( mte );
Someone may prove me wrong, anyway, my 2 cents.
Alex Garcia
PS: sorry for the double post, forgot to reply-to-all ...
Hong,Zhichao wrote:
Hi, all,
I am wondering what is the behavior of opendir("") in eCos fileio
implementation? I am reading some code written by others. And the
comment says open the current directory then code is written as
opendir("").
And the code seems to work as documented. But should not this actually
be opendir("."). I search the POSIX and various compiler
implementation. It does not seem any of them support this kind of empty
directory. Is this an eCos bug or a feature?
Zhichao Hong,CSDP
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss