This is the mail archive of the cygwin-developers@sourceware.cygnus.com mailing list for the Cygwin project. See the Cygwin home page for more information.
Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: struct stat st_dev question


On Mon, Apr 12, 1999 at 09:01:55PM -0400, Chris Faylor wrote:
>Hmm.  st_dev should be a disk's volume serial number, at least
>from my reading of the code in fhandler.cc.
>
>If it's always returning 4096, that's a bug.

Actually recent snapshots do not return 4096.

-chris

>On Mon, Apr 12, 1999 at 06:39:13PM -0500, Mumit Khan wrote:
>>I'm trying to debug a problem with egcs and the causes seems to be the
>>fact that the st_dev member of struct stat is always set to 4096. This 
>>is with Cygwin b20.1 DLL (and needs to be since egcs-1.2 needs to work
>>with b20.1 as well as any future release). Can anyone confirm if this 
>>is indeed intended? 
>>
>>Here's a simple test case:
>>
>>=== cut here
>>
>>  #include <sys/types.h>
>>  #include <sys/stat.h>
>>  #include <stdio.h>
>>
>>  int main (int argc, char *argv[]) {
>>    const char *path = (argc >= 2) ? argv[1] : "/";
>>    struct stat s;
>>    int i = stat (path, &s);
>>    printf ("stat (%s) = %d\n", path, i);
>>    printf ("inode = %d\n", s.st_ino);
>>    printf ("%s.st_dev = %d\n", path, s.st_dev);
>>
>>    return 0;
>>  }
>>
>>=== to here
>>
>>  $ ./stdev-test-cyg / 
>>  stat (/) = 0
>>  inode = 22896814
>>  /.st_dev = 4096
>>  $ ./stdev-test-cyg //d
>>  stat (//d) = 0
>>  inode = 22642860
>>  //d.st_dev = 4096
>>  $ ./stdev-test-cyg //u 
>>  stat (//u) = 0
>>  inode = 13213796
>>  //u.st_dev = 4096
>>
>>Microsoft's runtime does report different device id's.

-- 
cgf@cygnus.com
http://www.cygnus.com/