I seem to be able to crash writefln

spir denis.spir at gmail.com
Wed Mar 9 16:04:13 PST 2011


On 03/10/2011 12:19 AM, Joel Christensen wrote:
> This is on Windows 7. Using a def file to stop the terminal window coming up.
>
> win.def
> EXETYPE NT
> SUBSYSTEM WINDOWS
>
> bug.d
> import std.stdio;
> import std.string;
>
> void main() {
> auto f = File( "z.txt", "w" );
> scope( exit )
> f.close;
> string foo = "bar";
> foreach( n; 0 .. 10 ) {
> writefln( "%s", foo );
> f.write( format( "count duck-u-lar: %s\n", n ) );
> }
> }
>
> output (from in z.txt):
> count duck-u-lar: 0

What do you mean, crashing writefln? What do you get on the terminal?
About the file, there seems to be a bug --but unrelated to writefln. The file 
is closed, I guess because of scope(exit), before the output stream is flushed. 
If this is the right interpretation, then there is a precedence issue; scope's 
action should not be performed before the func's own action is actually completed.

Denis
-- 
_________________
vita es estrany
spir.wikidot.com



More information about the Digitalmars-d-learn mailing list