[#28924] IO.popen("echo a") clear O_APPEND of other fds. — Tanaka Akira <akr@...17n.org>
以下のように、IO.popen("echo a") が関係ない他の IO の
なかだです。
[#28942] FUNC_CDECL/FUNC_STDCALL are not defined? — KIMURA Koichi <kimura.koichi@...>
木村です。
こんにちは、なかむら(う)です。
U.Nakamura wrote:
こんにちは、なかむら(う)です。
U.Nakamura wrote:
こんにちは、なかむら(う)です。
U.Nakamura wrote:
In article <44AA3F42.4060800@ttsky.net>,
Tanaka Akira wrote:
Takaaki Tateishi wrote:
卜部です。
URABE Shyouhei wrote:
Takaaki Tateishi wrote:
[#28960] 世代別 GC について — MORITA Naoyuki <mlgetter@...>
森田と申します.
[#28971] [ BUG ] $0 cannot keep the given string — Hidetoshi NAGAI <nagai@...>
永井@知能.九工大です.
[#28988] size of st_data_t — "U.Nakamura" <usa@...>
こんにちは、なかむら(う)です。
[#29006] block wrapper — Tanaka Akira <akr@...>
以前、[ruby-dev:28747] の pp.rb の問題を解決するのに
まつもと ゆきひろです
In article <1152541094.492146.23781.nullmailer@x31.priv.netlab.jp>,
まつもと ゆきひろです
In article <1152542689.441125.24418.nullmailer@x31.priv.netlab.jp>,
In article <87psgd8qb2.fsf@fsij.org>,
In article <87r70rdpeg.fsf@fsij.org>,
In article <871wshddvn.fsf@fsij.org>,
In article <87ac5g5a7i.fsf@fsij.org>,
In article <8764foo7s7.fsf@fsij.org>,
In article <87venar27i.fsf@fsij.org>,
まつもと ゆきひろです
In article <1178883053.645482.13087.nullmailer@x31.netlab.jp>,
まつもと ゆきひろです
In article <1178978140.846301.8164.nullmailer@x31.netlab.jp>,
まつもと ゆきひろです
ささだです。
In article <465E1040.7020009@atdot.net>,
まつもと ゆきひろです
In article <E1HtaMS-00041i-6U@x31>,
まつもと ゆきひろです
In article <E1HtenN-0006CM-2a@x31>,
まつもと ゆきひろです
In article <E1Htx6H-00073o-Cw@x31>,
In article <E1Hv3TT-0004LL-L8@x31>,
まつもと ゆきひろです
[#29013] problem in bignorm — "U.Nakamura" <usa@...>
こんにちは、なかむら(う)です。
まつもと ゆきひろです
こんにちは、なかむら(う)です。
こんにちは、なかむら(う)です。
こんにちは、なかむら(う)です。
まつもと ゆきひろです
こんにちは、なかむら(う)です。
まつもと ゆきひろです
[#29014] def m(a=nil, b) — Tanaka Akira <akr@...>
ふと、1.9 なら (TCPServer#initialize のように) 第一引数を省
[#29032] rational 1.12 — Tadayoshi Funaba <tadf@...>
ふなばです。
なかだです。
ふなばです。
[#29038] irb completion — Tadayoshi Funaba <tadf@...>
ふなばです。
けいじゅ@いしつかです.
まつもと ゆきひろです
けいじゅ@いしつかです.
[#29044] block parameters for class_exec,module_exec,instance_exec — Takaaki Tateishi <ttate@...>
class_exec,module_exec,instance_execのブロックパラメータの仕様について
[#29080] UNIXSocket problem with ruby 1.8.5 preview2 on cygwin — Kouhei Yanagita <yanagi@...>
柳田です。
[#29089] test_strtod(TestFloat): ArgumentError: invalid value for Float(): "0." on 1.9 — Tanaka Akira <akr@...>
2006-07-18 以来、1.9 の test-all で (他のたくさんの失敗に紛
[#29093] Re: [ruby-cvs:17195] ruby/test/rss: * object.c (rb_mod_attr): make Module#attr to be an alias to — Tanaka Akira <akr@...>
In article <20060720173258.5D4BAC6781@lithium.ruby-lang.org>,
まつもと ゆきひろです
In article <1153423941.406034.21948.nullmailer@x31.priv.netlab.jp>,
まつもと ゆきひろです
In article <1153425319.663162.22588.nullmailer@x31.priv.netlab.jp>,
まつもと ゆきひろです
In article <1153446431.981115.25434.nullmailer@x31.priv.netlab.jp>,
まつもと ゆきひろです
In article <1153449042.979962.26498.nullmailer@x31.priv.netlab.jp>,
まつもと ゆきひろです
In article <1153453341.450474.27973.nullmailer@x31.priv.netlab.jp>,
[#29141] テスト2 — Tadayoshi Funaba <tadf@...>
もしかするとスパムかも。
[#29148] Re: [ruby-cvs:17256] ruby, ruby: * time.c (time_to_s): generate RFC822 style date string. — WATANABE Hirofumi <eban@...>
わたなべです。
成瀬です。
まつもと ゆきひろです
卜部です
まつもと ゆきひろです
卜部です。
成瀬です。
まつもと ゆきひろです
成瀬です
まつもと ゆきひろです
成瀬です。
まつもと ゆきひろです
成瀬です。
まつもと ゆきひろです
ふなばです。
まつもと ゆきひろです
> 郵便局の消印は採用できないんですが、なにが良いと思いますか。
まつもと ゆきひろです
なかだです。
ふなばです。
[#29158] backport — "MIYAMUKO Katsuyuki" <miyamuko@...>
みやむこです。
[ruby-dev:28936] Re: IO.popen("echo a") clear O_APPEND of other fds.
なかだです。
At Mon, 3 Jul 2006 02:34:14 +0900,
Tanaka Akira wrote in [ruby-dev:28933]:
> この出来の悪さを Ruby レベルでどうにかするために
> IO#file_flags を GETFL,
> IO#file_flags= を SETFL にして、
> io.file_flags |= File::NONBLOCK
> とできるようにしたらどうか、と考えたことはあります。
>
> 同様に
> IO#descriptor_flags を GETFD,
> IO#descriptor_flags= を SETFD にして、
> io.descriptor_flags |= Fcntl::FD_CLOEXEC
> と出来るようにする、ということも考えられます。
IO#close_on_exec のように個別にしたほうが、file_flagsと
descriptor_flagsのどっちだっけ、とか悩まずにすむんじゃないでしょ
うか。それとも早すぎる怠惰化?
> ... と思って考えてみると、IO#file_flags が Windows で動かな
> いからポータビリティに難あり、かな。
なけりゃないで未定義でいいんでは。
* io.c (rb_io_cloexec_get, rb_io_cloexec_set): new methods, get/set
FD_CLOEXEC flag.
Index: io.c
===================================================================
RCS file: /cvs/ruby/src/ruby/io.c,v
retrieving revision 1.411
diff -p -u -2 -r1.411 io.c
--- io.c 2 Jul 2006 02:25:11 -0000 1.411
+++ io.c 3 Jul 2006 01:17:08 -0000
@@ -2693,4 +2693,56 @@ rb_io_modenum_mode(int flags)
}
+#ifdef FD_CLOEXEC
+/*
+ * call-seq:
+ * ios.close_on_exec => true/false
+ *
+ * Returns true if *ios* will be closed on +exec+.
+ *
+ * def fd(io)
+ * path = "/proc/self/fd/#{io.fileno.to_s}"
+ * system("readlink", path) or puts "#{path} is not opened"
+ * end
+ *
+ * f = open("/dev/null")
+ * fd(f) # => /dev/null
+ * f.close_on_exec = true
+ * fd(f) # => /proc/self/fd/3 is not opened
+ */
+
+static VALUE
+rb_io_cloexec_get(VALUE io)
+{
+ OpenFile *fptr;
+ int flag;
+
+ GetOpenFile(io, fptr);
+ flag = fcntl(fptr->fd, F_GETFD);
+ if (flag == -1) rb_sys_fail(0);
+ return (flag & FD_CLOEXEC) ? Qtrue : Qfalse;
+}
+
+static VALUE
+rb_io_cloexec_set(VALUE io, VALUE val)
+{
+ OpenFile *fptr;
+ int oflag, flag;
+
+ GetOpenFile(io, fptr);
+ flag = fcntl(fptr->fd, F_GETFD);
+ if (flag == -1) rb_sys_fail(0);
+ oflag = flag;
+ if (RTEST(val)) {
+ flag |= FD_CLOEXEC;
+ }
+ else {
+ flag &= ~FD_CLOEXEC;
+ }
+ if (oflag != flag && fcntl(fptr->fd, F_SETFD, flag) == -1)
+ rb_sys_fail(0);
+ return (oflag & FD_CLOEXEC) ? Qtrue : Qfalse;
+}
+#endif
+
static int
rb_sysopen(char *fname, int flags, unsigned int mode)
@@ -5696,4 +5748,8 @@ Init_IO(void)
rb_define_method(rb_cIO, "eof", rb_io_eof, 0);
rb_define_method(rb_cIO, "eof?", rb_io_eof, 0);
+#ifdef FD_CLOEXEC
+ rb_define_method(rb_cIO, "close_on_exec", rb_io_cloexec_get, 0);
+ rb_define_method(rb_cIO, "close_on_exec=", rb_io_cloexec_set, 1);
+#endif
rb_define_method(rb_cIO, "close", rb_io_close_m, 0);
--
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
中田 伸悦