# Rubyspec: File.new raises an Errno::EINVAL error with File::APPEND FAILED

**URL:** <https://www.ruby-forum.com/t/rubyspec-file-new-raises-an-errno-einval-error-with-file-append-failed/183240>\
**Category:** Development\
**Created:** [February 10, 2010, 3:22pm UTC](https://www.ruby-forum.com/t/rubyspec-file-new-raises-an-errno-einval-error-with-file-append-failed/183240 "2010-02-10T15:22:00Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Yusuke\_ENDOH](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/y/c89c15/32.png) [@Yusuke\_ENDOH](https://www.ruby-forum.com/u/Yusuke_ENDOH)\
**Post date:** [February 10, 2010, 3:22pm UTC](https://www.ruby-forum.com/t/rubyspec-file-new-raises-an-errno-einval-error-with-file-append-failed/183240/1 "2010-02-10T15:22:00Z")

</div>

e$B$?$V$se(B akr e$B$5$se(B  
e$B1sF#$G$9!#e(B

foo.txt e$B$H$$$&%U%!%$%k$,B8:\_$9$k\>u67$G!"e(B

File.new(“foo.txt”, File::APPEND)

e$B$de(B

File.new(“foo.txt”, File::RDONLY|File::APPEND)

e$B$r\<B9T$9$k$H!"e(B1.8 e$B$G$Oe(B Errno::EINVAL  
e$B$,Ej$2$i$l$F$$$?$N$,e(B 1.9 e$B$G$Oe(B  
e$B%(%i!\<$K$J$i$J$/$J$C$F$$$^$9!#e(B

1.9 e$B$,e(B IO e$B$NFbItI=8=$Ke(B FILE  
e$B9=B$BN$r;H$o$J$/$J$C$?1F6A$+$HM=A[$9$ke(B  
e$B$N$G$9$,!“@5$7$$$G$7$g$&$+!#e(B  
e$B$=$N\>l9g!”;EMMJQ99$H$$$&$3$H$G$$$$$G$7$g$&$+!#e(B  
1.8 e$B$N%3!\<%I$rA4$/8+$J$$$G8@$C$F$k$N$G4X78$J$+$C$?$i$9$\_$^$;$s!#e(B

e$B$J$s$H$J$/e(B SUSv3 e$B$r8+$F$\_$?$H$3$m!"e(B

[http://www.opengroup.org/onlinepubs/009695399/functions/open.html](http://www.opengroup.org/onlinepubs/009695399/functions/open.html)

O\_APPEND e$B$Oe(B (write e$B$NA0$Ke(B) file offset  
e$B$r=\*C\<$K;}$C$F$/$k$H$$$&$@$1e(B  
e$B$G!"e(BO\_RDONLY  
e$B$HAH$\_9g$o$;$F$O$$$1$J$$$h$&$J$3$H$O=q$+$l$F$$$J$$$N$Ge(B  
1.9 e$B$,@5$7$$5$$,$7$^$9e(B (FILE  
e$B9=B$BN$r%P%C%/%(%s%I$K$7$F$$$k$HFq$7$$e(B  
e$B$N$+$b$7$l$^$;$s$,e(B) e$B!#e(B

---

<div class="post-metadata">

**Author:** ![Yusuke\_ENDOH](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/y/c89c15/32.png) [@Yusuke\_ENDOH](https://www.ruby-forum.com/u/Yusuke_ENDOH)\
**Post date:** [February 11, 2010, 11:34am UTC](https://www.ruby-forum.com/t/rubyspec-file-new-raises-an-errno-einval-error-with-file-append-failed/183240/2 "2010-02-11T11:34:17Z")

</div>

2010e$BG/e(B2e$B7ne(B10e$BF|e(B23:20 Yusuke ENDOH [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

> e$B$r\<B9T$9$k$H!"e(B1.8 e$B$G$Oe(B Errno::EINVAL e$B$,Ej$2$i$l$F$$$?$N$,e(B 1.9 e$B$G$Oe(B  
> e$B%(%i!\<$K$J$i$J$/$J$C$F$$$^$9!#e(B
> 
> 1.9 e$B$,e(B IO e$B$NFbItI=8=$Ke(B FILE e$B9=B$BN$r;H$o$J$/$J$C$?1F6A$+$HM=A[$9$ke(B  
> e$B$N$G$9$,!“@5$7$$$G$7$g$&$+!#e(B  
> e$B$=$N\>l9g!”;EMMJQ99$H$$$&$3$H$G$$$$$G$7$g$&$+!#e(B  
> 1.8 e$B$N%3!\<%I$rA4$/8+$J$$$G8@$C$F$k$N$G4X78$J$+$C$?$i$9$\_$^$;$s!#e(B

1.8.8 e$B$G$Oe(B fdopen(fd, “a”) e$B$,e(B EINVAL  
e$B$K$J$C$F$$$^$9$M!#e(B

1.8.1 e$B0JA0$Oe(B EINVAL e$B$K$J$i$J$$$N$G$9$,!"$3$l$Oe(B fdopen(fd,  
“r”) e$B$He(B  
e$B$J$C$F$$$k$+$i$N$h$&$G$9!#e(B

> O\_APPEND e$B$Oe(B (write e$B$NA0$Ke(B) file offset e$B$r=\*C\<$K;}$C$F$/$k$H$$$&$@$1e(B  
> e$B$G!"e(BO\_RDONLY e$B$HAH$\_9g$o$;$F$O$$$1$J$$$h$&$J$3$H$O=q$+$l$F$$$J$$$N$Ge(B  
> 1.9 e$B$,@5$7$$5$$,$7$^$9e(B (FILE e$B9=B$BN$r%P%C%/%(%s%I$K$7$F$$$k$HFq$7$$e(B  
> e$B$N$+$b$7$l$^$;$s$,e(B) e$B!#e(B

1.8.2 e$B$+$ie(B 1.8.8  
e$B$,4V0c$C$F$$$k!"$H$$$&$N$,AGD\>$J5$$,$7$^$9!#e(B

e$B$"$H!"e(Bfd e$B$+$ie(B O\_APPEND  
e$B$+$I$&$+D4$Y$i$l$J$$4D6-$G$O8=\>u$Ne(B 1.8 e$B$G$be(B  
EINVAL e$B$K$O$J$C$F$$$J$$5$$,$7$^$9$M!#e(BWindows e$B$H$+e(B?

---

<div class="post-metadata">

**Author:** ![Yusuke\_ENDOH](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/y/c89c15/32.png) [@Yusuke\_ENDOH](https://www.ruby-forum.com/u/Yusuke_ENDOH)\
**Post date:** [February 11, 2010, 1:31pm UTC](https://www.ruby-forum.com/t/rubyspec-file-new-raises-an-errno-einval-error-with-file-append-failed/183240/3 "2010-02-11T13:31:57Z")

</div>

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

2010e$BG/e(B2e$B7ne(B11e$BF|e(B19:33 Tanaka A. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

> 2010e$BG/e(B2e$B7ne(B10e$BF|e(B23:20 Yusuke ENDOH [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):
> 
> > e$B$r\<B9T$9$k$H!"e(B1.8 e$B$G$Oe(B Errno::EINVAL e$B$,Ej$2$i$l$F$$$?$N$,e(B 1.9 e$B$G$Oe(B  
> > e$B%(%i!\<$K$J$i$J$/$J$C$F$$$^$9!#e(B  
> > _snip_  
> > O\_APPEND e$B$Oe(B (write e$B$NA0$Ke(B) file offset e$B$r=\*C\<$K;}$C$F$/$k$H$$$&$@$1e(B  
> > e$B$G!"e(BO\_RDONLY e$B$HAH$\_9g$o$;$F$O$$$1$J$$$h$&$J$3$H$O=q$+$l$F$$$J$$$N$Ge(B  
> > 1.9 e$B$,@5$7$$5$$,$7$^$9e(B (FILE e$B9=B$BN$r%P%C%/%(%s%I$K$7$F$$$k$HFq$7$$e(B  
> > e$B$N$+$b$7$l$^$;$s$,e(B) e$B!#e(B
> 
> 1.8.2 e$B$+$ie(B 1.8.8 e$B$,4V0c$C$F$$$k!"$H$$$&$N$,AGD\>$J5$$,$7$^$9!#e(B

e$B$"$j$,$H$&$4$6$$$^$9!#$=$N$h$&$Ke(B rubyspec e$B$r=$@5$7$^$7$?!#e(B

> e$B$"$H!"e(Bfd e$B$+$ie(B O\_APPEND e$B$+$I$&$+D4$Y$i$l$J$$4D6-$G$O8=\>u$Ne(B 1.8 e$B$G$be(B  
> EINVAL e$B$K$O$J$C$F$$$J$$5$$,$7$^$9$M!#e(BWindows e$B$H$+e(B?

rubyspec e$B$C$FIaDL$Ke(B fork e$B$H$+;H$C$F$$$F!“e(Bwindows  
e$B$N$3$H$r$”$^$je(B  
e$B9M$($F$J$$$h$&$J5$$,$7$^$9!#:G6ae(B fork  
e$B$,$"$k$+$I$&$+$rH=Dj$9$ke(B  
guard e$B$,F~$j$^$7$?$,!#e(B
