digitalmars.D.bugs - [Issue 1105] New: std.c.linux.linux.stat fails for files > 2GB
- d-bugmail puremagic.com (24/25) Apr 06 2007 http://d.puremagic.com/issues/show_bug.cgi?id=1105
- d-bugmail puremagic.com (46/46) Apr 25 2007 http://d.puremagic.com/issues/show_bug.cgi?id=1105
- d-bugmail puremagic.com (6/6) Apr 28 2007 http://d.puremagic.com/issues/show_bug.cgi?id=1105
- d-bugmail puremagic.com (6/6) Apr 28 2007 http://d.puremagic.com/issues/show_bug.cgi?id=1105
- d-bugmail puremagic.com (11/11) Apr 29 2007 http://d.puremagic.com/issues/show_bug.cgi?id=1105
http://d.puremagic.com/issues/show_bug.cgi?id=1105 Summary: std.c.linux.linux.stat fails for files > 2GB Product: D Version: 1.010 Platform: PC OS/Version: Linux Status: NEW Severity: normal Priority: P2 Component: Phobos AssignedTo: bugzilla digitalmars.com ReportedBy: Alexander.Blum gmail.com While trying to use listdir (combined with isdir) on a folder containing files2GB I ran into a "Value too large for defined data type" FileException.Further inspection showed that a call to std.c.linux.linux.stat returns -1 on files > 2GB. I found that st_size is of type int in struct_stat. Testfall: dd if=/dev/zero of=/tmp/test.dat bs=100MB count=22 error.d: import std.file; void main(char[][] args) { isdir ("/tmp/test.dat"); } --
Apr 06 2007
http://d.puremagic.com/issues/show_bug.cgi?id=1105 thomas-dloop kuehne.cn changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |INVALID ------- Comment #1 from thomas-dloop kuehne.cn 2007-04-25 12:49 ------- This is a C issue. The below C code shows the same symbtoms like the above D code: # #include <sys/stat.h> # #include <stdio.h> # #include <errno.h> # # int main(){ # struct stat meta; # int code = stat("/tmp/test.dat", &meta); # # if(0 == code){ # printf("isdir: %i\n", S_ISDIR(meta.st_mode)); # }else{ # printf("errno: %i\n", errno); # } # # return 0; # } While this issue can be by-passed via stat64 (below) stat64 isn't guaranteed to be present (most current Linux system should support it but some odler ones don't): # #define _LARGEFILE64_SOURCE 1 # #include <sys/stat.h> # #include <stdio.h> # #include <errno.h> # # int main(){ # struct stat64 meta; # int code = stat64("/tmp/test.dat", &meta); # # if(0 == code){ # printf("isdir: %i\n", S_ISDIR(meta.st_mode)); # }else{ # printf("errno: %i\n", errno); # } # # return 0; # } --
Apr 25 2007
http://d.puremagic.com/issues/show_bug.cgi?id=1105 ------- Comment #2 from thomas-dloop kuehne.cn 2007-04-28 12:08 ------- Created an attachment (id=144) --> (http://d.puremagic.com/issues/attachment.cgi?id=144&action=view) bigfile support for DMD-1.014's Phobos (mostly un-tested) --
Apr 28 2007
http://d.puremagic.com/issues/show_bug.cgi?id=1105 ------- Comment #3 from thomas-dloop kuehne.cn 2007-04-28 12:10 ------- Created an attachment (id=145) --> (http://d.puremagic.com/issues/attachment.cgi?id=145&action=view) bzip2 compressed DMD-1.014 libphobos.a with bigfile support --
Apr 28 2007
http://d.puremagic.com/issues/show_bug.cgi?id=1105 thomas-dloop kuehne.cn changed: What |Removed |Added ---------------------------------------------------------------------------- Resolution|INVALID |DUPLICATE ------- Comment #4 from thomas-dloop kuehne.cn 2007-04-29 04:00 ------- changed to "duplicate" because Bugzilla's duplication statistic is rather limited and doesn't support lower numbered issue reports to be marked as duplicate of an higher numbered one *** This bug has been marked as a duplicate of 579 *** --
Apr 29 2007