Why is GCJ shy of overwriting a .class file?

Andrew Haley aph@redhat.com
Fri Nov 8 06:06:00 GMT 2002


Ranjit Mathew writes:
 > 
 > I read the MSDN documentation and found that MSVCRT
 > would return an error for rename( ) if the file
 > already exists, unlike Unix.
 > 
 > How does the following look?
 > --------------------------- 8< -----------------------------------
 > --- jcf-write.c Fri Nov 8 17:00:02 2002
 > +++ jcf-write.c Fri Nov 8 17:02:34 2002
 > @@ -3423,4 +3423,8 @@
 > if (fclose (stream))
 > fatal_io_error ("error closing %s", temporary_file_name);
 > +
 > + /* On Win32, renaming to an existing file is an error */
 > + remove (class_file_name);
 > +
 > if (rename (temporary_file_name, class_file_name) == -1)
 > {
 > --------------------------- 8< -----------------------------------
OK.
I'd add more commentary:
/* If a file named by the string pointed to by `new' exists prior to
 the call to the `rename' function, the bahaviour is
 implementation-defined. ISO 9899-1990 7.9.4.2. */
Andrew.


More information about the Java mailing list

AltStyle によって変換されたページ (->オリジナル) /