comp.lang.ada
 help / color / mirror / Atom feed
From: vlc <just.another.spam.account@googlemail.com>
Subject: Re: Atomic file creation
Date: Mon, 4 Jan 2010 06:24:26 -0800 (PST)
Date: 2010-01-04T06:24:26-08:00	[thread overview]
Message-ID: <be17a931-d9c4-47b6-8ede-c20e144f3af7@a6g2000yqm.googlegroups.com> (raw)
In-Reply-To: c06d32c4-e160-4a74-9f7a-efe3d7108cc8@v25g2000yqk.googlegroups.com

I also tried something like this:

 1  Ada.Text_IO.Create (Handle, Out_File);
 2  declare
 3     Temp_File : String := Ada.Text_IO.Name (Handle);
 4  begin
 5     Ada.Text_IO.Close (Handle);
 6     Ada.Text_IO.Rename (Temp_File, "file");
 7     Ada.Text_IO.Put_Line ("Success");
 8  exception
 9     when Ada.IO_Exceptions.Use_Error =>
10        Ada.Text_IO.Put_Line ("Failure");
11     when others =>
12        raise;
13  end;

But Ada.Text_IO.Rename always raises Ada.IO_Exceptions.Use_Error, even
if the file does not exist. But if I replace line 1 with

 1  Ada.Text_IO.Create (Handle, Out_File, "my_temp_file");

it works. It seems that Ada.Text_IO.Rename cannot rename temporary
files for whatever reason.

Using Ada.Directories.Copy_File instead of Ada.Text_IO.Rename does not
help as Ada.Directories.Copy_File overwrites files without raising an
exception. Bad luck ...



  reply	other threads:[~2010-01-04 14:24 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-01-04 13:40 Atomic file creation vlc
2010-01-04 14:24 ` vlc [this message]
2010-01-04 15:52   ` Jean-Pierre Rosen
2010-01-04 16:45     ` vlc
2010-01-04 17:12       ` Jean-Pierre Rosen
2010-01-04 22:38         ` Ludovic Brenta
2010-01-04 23:00           ` Dmitry A. Kazakov
2010-01-05  9:15     ` Jacob Sparre Andersen
2010-01-05  4:16   ` Stephen Leake
2010-01-05 14:48     ` vlc
2010-01-09 15:23       ` Stephen Leake
2010-01-04 14:25 ` Georg Bauhaus
2010-01-04 14:45   ` vlc
2010-01-04 14:49 ` Jacob Sparre Andersen
2010-01-04 15:07   ` vlc
2010-01-04 17:14     ` Jacob Sparre Andersen
2010-01-05 14:43       ` vlc
2010-01-06  2:28     ` Brad Moore
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox