[Issue 18017] New: File.size() uses a 32-bit signed integer for size internally (gives wrong results for files over ≈2.1 GB)
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Tue Nov 28 15:00:15 UTC 2017
https://issues.dlang.org/show_bug.cgi?id=18017
Issue ID: 18017
Summary: File.size() uses a 32-bit signed integer for size
internally (gives wrong results for files over ≈2.1
GB)
Product: D
Version: D2
Hardware: x86_64
OS: Windows
Status: NEW
Severity: enhancement
Priority: P1
Component: phobos
Assignee: nobody at puremagic.com
Reporter: issues.dlang.org.kq.ajsx at krzaq.cc
I think the code should say it all:
void main(string[] args)
{
import std.stdio;
// assume C:\code\foo.raw is 2147483648 bytes big (INT_MAX+1), for example
// dd if=/dev/zero of=/cygdrive/c/code/foo.raw bs=65536 count=32768
auto f = File("C:\\code\\foo.raw");
assert(f.size == 18446744071562067968u);
// dd if=/dev/zero of=/cygdrive/c/code/foo.raw bs=65536 count=32768
}
--
More information about the Digitalmars-d-bugs
mailing list