# File.rename

**URL:** <https://www.ruby-forum.com/t/file-rename/65418>\
**Category:** Development\
**Created:** [August 18, 2006, 2:54am UTC](https://www.ruby-forum.com/t/file-rename/65418 "2006-08-18T02:54:42Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Beyond](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/e0b2c6/32.png) [@Beyond](https://www.ruby-forum.com/u/Beyond)\
**Post date:** [August 18, 2006, 2:54am UTC](https://www.ruby-forum.com/t/file-rename/65418/1 "2006-08-18T02:54:42Z")

</div>

Beyonde$B$G$9!#e(B

cygwine$B$@$1$@$H;W$$$^$9$,!"\<!$N$h$&$J%9%/%j%W%H$Ge(Bcoree$B$r$O$-$^$9!#e(B

$ ruby mv.rb  
mv.rb:5: [BUG] rb\_sys\_fail(b or a) - errno == 0  
ruby 1.8.5 (2006-08-06) [i386-cygwin]

Aborted (core dumped)

------------------------------ mv.rb  
#! ruby

Dir.mkdir( “a” )  
File.open( “b”, “w” ) { |f| f.puts “1” }  
File.rename( “b”, “a” )

---

<div class="post-metadata">

**Author:** ![Beyond](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/e0b2c6/32.png) [@Beyond](https://www.ruby-forum.com/u/Beyond)\
**Post date:** [August 18, 2006, 5:49am UTC](https://www.ruby-forum.com/t/file-rename/65418/2 "2006-08-18T05:49:27Z")

</div>

e$B$J$+$@$G$9!#e(B

At Fri, 18 Aug 2006 09:52:59 +0900,  
Beyond wrote in [ruby-dev:29293]:

> cygwine$B$@$1$@$H;W$$$^$9$,!"\<!$N$h$&$J%9%/%j%W%H$Ge(Bcoree$B$r$O$-$^$9!#e(B
> 
> $ ruby mv.rb  
> mv.rb:5: [BUG] rb\_sys\_fail(b or a) - errno == 0  
> ruby 1.8.5 (2006-08-06) [i386-cygwin]
> 
> Aborted (core dumped)

e$B$I$&$d$i!“e(Brename()e$B$Ge(Berrnoe$B$,%;%C%H$5$l$J$$$H$$$&%P%0$O!”:G6a$Ne(B  
cygwine$B$G$OD\>$C$F$$$k$h$&$G$9!#e(B

# Index: file.c

RCS file: /pub/cvs/ruby/src/ruby/file.c,v  
retrieving revision 1.169.2.48  
diff -U 2 -p -u -r1.169.2.48 file.c  
— file.c 17 Aug 2006 10:15:55 -0000 1.169.2.48  
+++ file.c 18 Aug 2006 03:45:56 -0000  
@@ -2233,8 +2233,13 @@ rb\_file\_s\_rename(klass, from, to)  
src = StringValueCStr(from);  
dst = StringValueCStr(to);  
+#if defined **CYGWIN**

- errno = 0;  
+#endif  
if (rename(src, dst) \< 0) {  
#if defined **CYGWIN**  
extern unsigned long **attribute** ((stdcall)) GetLastError(void);

- errno = GetLastError(); /\* This is a Cygwin bug \*/

- if (errno == 0) {
- 

```
  errno = GetLastError(); /* This is a Cygwin bug */

```

- }  
#elif defined DOSISH && !defined \_WIN32  
if (errno == EEXIST

---

<div class="post-metadata">

**Author:** ![Beyond](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/e0b2c6/32.png) [@Beyond](https://www.ruby-forum.com/u/Beyond)\
**Post date:** [August 19, 2006, 4:06am UTC](https://www.ruby-forum.com/t/file-rename/65418/3 "2006-08-19T04:06:01Z")

</div>

e$B$^$D$b$He(B e$B$f$-$R$m$G$9e(B

In message “Re: [ruby-dev:29297] Re: File.rename”  
on Fri, 18 Aug 2006 12:47:48 +0900, removed\_email\_address@domain.invalid writes:

|e$B$I$&$d$i!“e(Brename()e$B$Ge(Berrnoe$B$,%;%C%H$5$l$J$$$H$$$&%P%0$O!”:G6a$Ne(B  
|cygwine$B$G$OD\>$C$F$$$k$h$&$G$9!#e(B

e$B%3%\_%C%H$7$F$/$@$5$$!#e(B
