[ECOS] opendir with empty directory name?

Alex Garcia thekyz@gmail.com
Tue Mar 18 16:37:00 GMT 2008


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



More information about the Ecos-discuss mailing list