[ruby-core:75872] [Ruby trunk Bug#12467] Open mode 'a' does not work for Process.spawn on Windows
From:
yutakaha.ra@...
Date:
2016-06-07 10:02:21 UTC
List:
ruby-core #75872
Issue #12467 has been reported by Yutaka HARA.
----------------------------------------
Bug #12467: Open mode 'a' does not work for Process.spawn on Windows
https://bugs.ruby-lang.org/issues/12467
* Author: Yutaka HARA
* Status: Open
* Priority: Normal
* Assignee:
* ruby -v: ruby 2.3.0p0 (2015-12-25 revision 53290) [x64-mingw32]
* Backport: 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: UNKNOWN
----------------------------------------
Example:
~~~
spawn 'ruby -e "p Time.now"', [:out, :err] => ['log.txt', 'a']
sleep 1
spawn 'ruby -e "p Time.now"', [:out, :err] => ['log.txt', 'a']
sleep 1
p File.read('log.txt')
~~~
This program looks work correctly at first.
~~~
c:\>ruby spawn_bug.rb
"2016-06-07 18:47:25 +0900\n2016-06-07 18:28:17 +0900\n"
~~~
However, when I run it again, the log file is truncated like 'w' flag.
~~~
c:\>ruby spawn_bug.rb
"2016-06-07 18:47:38 +0900\n2016-06-07 18:28:17 +0900\n"
~~~
This is the same if I open the log file manually with File.open.
~~~
f = File.open('log.txt', 'a')
spawn 'ruby -e "p Time.now"', [:out, :err] => f
sleep 1
spawn 'ruby -e "p Time.now"', [:out, :err] => f
sleep 1
p File.read('log.txt')
~~~
I tried this on Windows 10. (Also confirmed this does not happen on Mac OS X 10.11 + ruby 2.2)
--
https://bugs.ruby-lang.org/
Unsubscribe: <mailto:[email protected]?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>