[#24536] 「Rubyの落し方」 v.s. ruby_1_8 — akira yamada / やまだあきら <akira@...>

<URL:http://jp.rubyist.net/magazine/?0002-RubyCore>

40 messages 2004/10/20
[#24541] Re: 「Rubyの落し方」 v.s. ruby_1_8 — Yukihiro Matsumoto <matz@...> 2004/10/20

まつもと ゆきひろです

[#24599] 1.8.2 preview3? — akira yamada / やまだあきら <akira@...> 2004/10/26

2004-10-20 (水) の 21:38 +0900 に Yukihiro Matsumoto さんは書きました:

[#24605] Re: 1.8.2 preview3? — akira yamada / やまだあきら <akira@...> 2004/10/27

2004-10-26 (火) の 16:16 +0900 に akira yamada / やまだあきら さんは書きました:

[#24606] Re: 1.8.2 preview3? — Yukihiro Matsumoto <matz@...> 2004/10/27

まつもと ゆきひろです

[#24608] Re: 1.8.2 preview3? — akira yamada / やまだあきら <akira@...> 2004/10/27

2004-10-27 (水) の 11:48 +0900 に Yukihiro Matsumoto さんは書きました:

[#24620] Re: 1.8.2 preview3? — akira yamada / やまだあきら <akira@...> 2004/10/27

2004-10-27 (水) の 12:42 +0900 に akira yamada / やまだあきら さんは書きました:

[#24629] Re: 1.8.2 preview3? — Tanaka Akira <akr@...17n.org> 2004/10/29

In article <1098888819.9446.14.camel@rice.p.arika.org>,

[ruby-dev:24512] Re: File::open and mode 'w+'

From: nobu@...
Date: 2004-10-17 22:21:32 UTC
List: ruby-dev #24512
なかだです。

At Sun, 17 Oct 2004 13:08:18 +0900,
sheepman wrote in [ruby-dev:24505]:
> こんにちは、sheepman です。
> 存在しないファイルを mode "w+" で開くと例外が上がってしまいます。

r+とw+を区別するにはO_CREAT相当も必要でしょう。


Index: io.c
===================================================================
RCS file: /cvs/ruby/src/ruby/io.c,v
retrieving revision 1.303
diff -U2 -p -d -r1.303 io.c
--- io.c	12 Oct 2004 06:07:01 -0000	1.303
+++ io.c	17 Oct 2004 22:19:31 -0000
@@ -2305,4 +2305,7 @@ rb_io_flags_mode(flags)
 	return MODE_BINMODE("w", "wb");
       case FMODE_READWRITE:
+	if (flags & FMODE_CREATE) {
+	    return MODE_BINMODE("w+", "wb+");
+	}
 	return MODE_BINMODE("r+", "rb+");
     }
@@ -2323,8 +2326,8 @@ rb_io_mode_flags(mode)
 	break;
       case 'w':
-	flags |= FMODE_WRITABLE;
+	flags |= FMODE_WRITABLE | FMODE_CREATE;
 	break;
       case 'a':
-	flags |= FMODE_WRITABLE | FMODE_APPEND;
+	flags |= FMODE_WRITABLE | FMODE_APPEND | FMODE_CREATE;
 	break;
       default:
Index: rubyio.h
===================================================================
RCS file: /cvs/ruby/src/ruby/rubyio.h,v
retrieving revision 1.27
diff -U2 -p -d -r1.27 rubyio.h
--- rubyio.h	6 Oct 2004 07:40:03 -0000	1.27
+++ rubyio.h	17 Oct 2004 22:14:19 -0000
@@ -32,4 +32,5 @@ typedef struct OpenFile {
 #define FMODE_READWRITE 3
 #define FMODE_APPEND   64
+#define FMODE_CREATE  128
 #define FMODE_BINMODE   4
 #define FMODE_SYNC      8


-- 
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
    中田 伸悦

In This Thread