# puts$B$G(BSEGV

**URL:** <https://www.ruby-forum.com/t/puts-b-g-bsegv/132006>\
**Category:** Development\
**Created:** [March 15, 2008, 4:44am UTC](https://www.ruby-forum.com/t/puts-b-g-bsegv/132006 "2008-03-15T04:44:11Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![unknown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/4bbf92/32.png) [@unknown](https://www.ruby-forum.com/u/unknown)\
**Post date:** [March 15, 2008, 4:44am UTC](https://www.ruby-forum.com/t/puts-b-g-bsegv/132006/1 "2008-03-15T04:44:11Z")

</div>

e$B$k$S$-$A$G$9!#e(B

$stdoute$B$KJL$N%\*%V%8%’%/%H$r;XDj$7$?\>l9g!"e(Bputse$B$Ge(BSEGVe$B$j$^$9!#e(B  
Ruby 1.9.0e$B$G$OBg\>fIW$G$9!#e(B

class Logger  
def write(obj)  
STDOUT.print Time.now.strftime("%Y/%m/%d %H:%M:%S:"), obj  
end  
end  
$stdout = Logger.new

print 1,2  
puts 1,2

(gdb) bt  
#0 0x080d5208 in st\_lookup (table=0x4, key=1000, value=0xbf4090c4) at  
st.c:282  
#1 0x08059820 in search\_method (klass=3083118216, id=1000, klassp=0x0)  
at eval\_method.c:219  
#2 0x0805985d in rb\_get\_method\_body (klass=3083118216, id=1000,  
idp=0xbf409144)  
at eval\_method.c:246  
#3 0x0805d119 in rb\_call0 (klass=3083118216, recv=3083006680, mid=1000,  
argc=1,  
argv=0xbf4091c0, scope=3, self=3082638840) at eval.c:1383  
#4 0x0805d364 in rb\_call (klass=3083118216, recv=3083006680, mid=1000,  
argc=1,  
argv=0xbf4091c0, scope=3) at eval.c:1449  
#5 0x0805d5af in rb\_funcall (recv=3083006680, mid=1000, n=1) at  
eval.c:1541  
#6 0x0812d889 in rb\_exc\_new (etype=3083006680,  
ptr=0xbf409264 “method `<fe$B!`e(B’ called on terminated object  
(0xb7c2f47c)”, len=54)  
at error.c:340  
#7 0x0812d8c0 in rb\_exc\_new2 (etype=3083006680,  
s=0xbf409264 “method `<fe$B!`e(B’ called on terminated object  
(0xb7c2f47c)”)  
at error.c:346  
#8 0x0812f13e in rb\_raise (exc=3083006680,  
fmt=0x814a54c “method `%s’ called on terminated object (%p)”) at  
error.c:1078  
#9 0x0805d03f in rb\_call0 (klass=0, recv=3083007100, mid=1000, argc=1,  
argv=0xbf40b320, scope=3, self=3082638840) at eval.c:1367  
#10 0x0805d364 in rb\_call (klass=0, recv=3083007100, mid=1000, argc=1,  
argv=0xbf40b320, scope=3) at eval.c:1449  
#11 0x0805d5af in rb\_funcall (recv=3083007100, mid=1000, n=1) at  
eval.c:1541  
#12 0x0812d889 in rb\_exc\_new (etype=3083007100,  
ptr=0xbf40b3c4 “wrong number of arguments(2 for 0)”, len=34) at  
error.c:340  
#13 0x0812d8c0 in rb\_exc\_new2 (etype=3083007100,  
s=0xbf40b3c4 “wrong number of arguments(2 for 0)”) at error.c:346  
#14 0x0812f13e in rb\_raise (exc=3083007100,  
fmt=0x81662d0 “wrong number of arguments(%d for %d)”) at  
error.c:1078  
#15 0x08101593 in call\_cfunc (func=0x807192a \<rb\_f\_puts\>,  
recv=3082638840, len=0,  
argc=2, argv=0xb7c37024) at vm\_insnhelper.c:273  
#16 0x08101112 in vm\_call0 (th=0x819c990, klass=3083036220,  
recv=3082638840,  
id=6712, oid=0, argc=2, argv=0xb7c37024, body=0xb7c24090, nosuper=0)  
at vm.c:457  
#17 0x0805d315 in rb\_call0 (klass=3083036220, recv=3082638840, mid=6712,  
argc=2,  
argv=0xb7c37024, scope=3, self=3082638840) at eval.c:1435  
#18 0x0805d364 in rb\_call (klass=3082638980, recv=3082638840, mid=6712,  
argc=2,  
argv=0xb7c37024, scope=3) at eval.c:1449  
#19 0x0805d5f0 in rb\_funcall2 (recv=3082638840, mid=6712, argc=2,  
argv=0xb7c37024)  
at eval.c:1548  
#20 0x08071970 in rb\_f\_puts (argc=2, argv=0xb7c37024) at io.c:4567  
#21 0x08101600 in call\_cfunc (func=0x807192a \<rb\_f\_puts\>,  
recv=3082638840, len=-1,  
argc=2, argv=0xb7c37024) at vm\_insnhelper.c:282  
#22 0x08101112 in vm\_call0 (th=0x819c990, klass=3083036220,  
recv=3082638840,  
—Type to continue, or q to quit—  
id=6712, oid=0, argc=2, argv=0xb7c37024, body=0xb7c24090, nosuper=0)  
at vm.c:457  
#23 0x0805d315 in rb\_call0 (klass=3083036220, recv=3082638840, mid=6712,  
argc=2,  
argv=0xb7c37024, scope=3, self=3082638840) at eval.c:1435  
#24 0x0805d364 in rb\_call (klass=3082638980, recv=3082638840, mid=6712,  
argc=2,  
argv=0xb7c37024, scope=3) at eval.c:1449  
#25 0x0805d5f0 in rb\_funcall2 (recv=3082638840, mid=6712, argc=2,  
argv=0xb7c37024)  
at eval.c:1548  
#26 0x08071970 in rb\_f\_puts (argc=2, argv=0xb7c37024) at io.c:4567  
#27 0x08101600 in call\_cfunc (func=0x807192a \<rb\_f\_puts\>,  
recv=3082638840, len=-1,  
argc=2, argv=0xb7c37024) at vm\_insnhelper.c:282  
#28 0x08101112 in vm\_call0 (th=0x819c990, klass=3083036220,  
recv=3082638840,  
id=6712, oid=0, argc=2, argv=0xb7c37024, body=0xb7c24090, nosuper=0)  
at vm.c:457  
#29 0x0805d315 in rb\_call0 (klass=3083036220, recv=3082638840, mid=6712,  
argc=2,  
argv=0xb7c37024, scope=3, self=3082638840) at eval.c:1435  
#30 0x0805d364 in rb\_call (klass=3082638980, recv=3082638840, mid=6712,  
argc=2,  
argv=0xb7c37024, scope=3) at eval.c:1449  
#31 0x0805d5f0 in rb\_funcall2 (recv=3082638840, mid=6712, argc=2,  
argv=0xb7c37024)  
at eval.c:1548  
#32 0x08071970 in rb\_f\_puts (argc=2, argv=0xb7c37024) at io.c:4567  
#33 0x08101600 in call\_cfunc (func=0x807192a \<rb\_f\_puts\>,  
recv=3082638840, len=-1,  
argc=2, argv=0xb7c37024) at vm\_insnhelper.c:282  
#34 0x08101112 in vm\_call0 (th=0x819c990, klass=3083036220,  
recv=3082638840,  
id=6712, oid=0, argc=2, argv=0xb7c37024, body=0xb7c24090, nosuper=0)  
at vm.c:457  
#35 0x0805d315 in rb\_call0 (klass=3083036220, recv=3082638840, mid=6712,  
argc=2,  
argv=0xb7c37024, scope=3, self=3082638840) at eval.c:1435  
#36 0x0805d364 in rb\_call (klass=3082638980, recv=3082638840, mid=6712,  
argc=2,  
argv=0xb7c37024, scope=3) at eval.c:1449  
#37 0x0805d5f0 in rb\_funcall2 (recv=3082638840, mid=6712, argc=2,  
argv=0xb7c37024)  
at eval.c:1548  
#38 0x08071970 in rb\_f\_puts (argc=2, argv=0xb7c37024) at io.c:4567  
#39 0x08101600 in call\_cfunc (func=0x807192a \<rb\_f\_puts\>,  
recv=3082638840, len=-1,  
argc=2, argv=0xb7c37024) at vm\_insnhelper.c:282  
#40 0x08101112 in vm\_call0 (th=0x819c990, klass=3083036220,  
recv=3082638840,  
id=6712, oid=0, argc=2, argv=0xb7c37024, body=0xb7c24090, nosuper=0)  
at vm.c:457  
#41 0x0805d315 in rb\_call0 (klass=3083036220, recv=3082638840, mid=6712,  
argc=2,  
argv=0xb7c37024, scope=3, self=3082638840) at eval.c:1435  
#42 0x0805d364 in rb\_call (klass=3082638980, recv=3082638840, mid=6712,  
argc=2,  
argv=0xb7c37024, scope=3) at eval.c:1449  
#43 0x0805d5f0 in rb\_funcall2 (recv=3082638840, mid=6712, argc=2,  
argv=0xb7c37024)  
at eval.c:1548  
#44 0x08071970 in rb\_f\_puts (argc=2, argv=0xb7c37024) at io.c:4567  
#45 0x08101600 in call\_cfunc (func=0x807192a \<rb\_f\_puts\>,  
recv=3082638840, len=-1,  
argc=2, argv=0xb7c37024) at vm\_insnhelper.c:282  
—Type to continue, or q to quit—  
#46 0x08101112 in vm\_call0 (th=0x819c990, klass=3083036220,  
recv=3082638840,  
id=6712, oid=0, argc=2, argv=0xb7c37024, body=0xb7c24090, nosuper=0)  
at vm.c:457  
#47 0x0805d315 in rb\_call0 (klass=3083036220, recv=3082638840, mid=6712,  
argc=2,  
argv=0xb7c37024, scope=3, self=3082638840) at eval.c:1435  
#48 0x0805d364 in rb\_call (klass=3082638980, recv=3082638840, mid=6712,  
argc=2,  
argv=0xb7c37024, scope=3) at eval.c:1449  
#49 0x0805d5f0 in rb\_funcall2 (recv=3082638840, mid=6712, argc=2,  
argv=0xb7c37024)  
at eval.c:1548  
#50 0x08071970 in rb\_f\_puts (argc=2, argv=0xb7c37024) at io.c:4567  
#51 0x08101600 in call\_cfunc (func=0x807192a \<rb\_f\_puts\>,  
recv=3082638840, len=-1,  
argc=2, argv=0xb7c37024) at vm\_insnhelper.c:282  
#52 0x08101112 in vm\_call0 (th=0x819c990, klass=3083036220,  
recv=3082638840,  
id=6712, oid=0, argc=2, argv=0xb7c37024, body=0xb7c24090, nosuper=0)  
at vm.c:457  
#53 0x0805d315 in rb\_call0 (klass=3083036220, recv=3082638840, mid=6712,  
argc=2,  
argv=0xb7c37024, scope=3, self=3082638840) at eval.c:1435  
#54 0x0805d364 in rb\_call (klass=3082638980, recv=3082638840, mid=6712,  
argc=2,  
argv=0xb7c37024, scope=3) at eval.c:1449  
#55 0x0805d5f0 in rb\_funcall2 (recv=3082638840, mid=6712, argc=2,  
argv=0xb7c37024)  
at eval.c:1548  
#56 0x08071970 in rb\_f\_puts (argc=2, argv=0xb7c37024) at io.c:4567  
#57 0x08101600 in call\_cfunc (func=0x807192a \<rb\_f\_puts\>,  
recv=3082638840, len=-1,  
argc=2, argv=0xb7c37024) at vm\_insnhelper.c:282  
#58 0x08101112 in vm\_call0 (th=0x819c990, klass=3083036220,  
recv=3082638840,  
id=6712, oid=0, argc=2, argv=0xb7c37024, body=0xb7c24090, nosuper=0)  
at vm.c:457  
#59 0x0805d315 in rb\_call0 (klass=3083036220, recv=3082638840, mid=6712,  
argc=2,  
argv=0xb7c37024, scope=3, self=3082638840) at eval.c:1435  
#60 0x0805d364 in rb\_call (klass=3082638980, recv=3082638840, mid=6712,  
argc=2,  
argv=0xb7c37024, scope=3) at eval.c:1449  
#61 0x0805d5f0 in rb\_funcall2 (recv=3082638840, mid=6712, argc=2,  
argv=0xb7c37024)  
at eval.c:1548  
#62 0x08071970 in rb\_f\_puts (argc=2, argv=0xb7c37024) at io.c:4567  
#63 0x08101600 in call\_cfunc (func=0x807192a \<rb\_f\_puts\>,  
recv=3082638840, len=-1,  
argc=2, argv=0xb7c37024) at vm\_insnhelper.c:282  
#64 0x08101112 in vm\_call0 (th=0x819c990, klass=3083036220,  
recv=3082638840,  
id=6712, oid=0, argc=2, argv=0xb7c37024, body=0xb7c24090, nosuper=0)  
at vm.c:457  
#65 0x0805d315 in rb\_call0 (klass=3083036220, recv=3082638840, mid=6712,  
argc=2,  
argv=0xb7c37024, scope=3, self=3082638840) at eval.c:1435  
#66 0x0805d364 in rb\_call (klass=3082638980, recv=3082638840, mid=6712,  
argc=2,  
argv=0xb7c37024, scope=3) at eval.c:1449  
#67 0x0805d5f0 in rb\_funcall2 (recv=3082638840, mid=6712, argc=2,  
argv=0xb7c37024)  
at eval.c:1548  
#68 0x08071970 in rb\_f\_puts (argc=2, argv=0xb7c37024) at io.c:4567  
#69 0x08101600 in call\_cfunc (func=0x807192a \<rb\_f\_puts\>,  
recv=3082638840, len=-1,  
—Type to continue, or q to quit—  
argc=2, argv=0xb7c37024) at vm\_insnhelper.c:282  
#70 0x08101112 in vm\_call0 (th=0x819c990, klass=3083036220,  
recv=3082638840,  
id=6712, oid=0, argc=2, argv=0xb7c37024, body=0xb7c24090, nosuper=0)  
at vm.c:457  
#71 0x0805d315 in rb\_call0 (klass=3083036220, recv=3082638840, mid=6712,  
argc=2,  
argv=0xb7c37024, scope=3, self=3082638840) at eval.c:1435  
#72 0x0805d364 in rb\_call (klass=3082638980, recv=3082638840, mid=6712,  
argc=2,  
argv=0xb7c37024, scope=3) at eval.c:1449  
#73 0x0805d5f0 in rb\_funcall2 (recv=3082638840, mid=6712, argc=2,  
argv=0xb7c37024)  
at eval.c:1548  
#74 0x08071970 in rb\_f\_puts (argc=2, argv=0xb7c37024) at io.c:4567  
#75 0x08101600 in call\_cfunc (func=0x807192a \<rb\_f\_puts\>,  
recv=3082638840, len=-1,  
argc=2, argv=0xb7c37024) at vm\_insnhelper.c:282  
#76 0x08101112 in vm\_call0 (th=0x819c990, klass=3083036220,  
recv=3082638840,  
id=6712, oid=0, argc=2, argv=0xb7c37024, body=0xb7c24090, nosuper=0)  
at vm.c:457  
#77 0x0805d315 in rb\_call0 (klass=3083036220, recv=3082638840, mid=6712,  
argc=2,  
argv=0xb7c37024, scope=3, self=3082638840) at eval.c:1435  
#78 0x0805d364 in rb\_call (klass=3082638980, recv=3082638840, mid=6712,  
argc=2,  
argv=0xb7c37024, scope=3) at eval.c:1449  
#79 0x0805d5f0 in rb\_funcall2 (recv=3082638840, mid=6712, argc=2,  
argv=0xb7c37024)  
at eval.c:1548  
#80 0x08071970 in rb\_f\_puts (argc=2, argv=0xb7c37024) at io.c:4567  
#81 0x08101600 in call\_cfunc (func=0x807192a \<rb\_f\_puts\>,  
recv=3082638840, len=-1,  
argc=2, argv=0xb7c37024) at vm\_insnhelper.c:282  
#82 0x08101112 in vm\_call0 (th=0x819c990, klass=3083036220,  
recv=3082638840,  
id=6712, oid=0, argc=2, argv=0xb7c37024, body=0xb7c24090, nosuper=0)  
at vm.c:457  
#83 0x0805d315 in rb\_call0 (klass=3083036220, recv=3082638840, mid=6712,  
argc=2,  
argv=0xb7c37024, scope=3, self=3082638840) at eval.c:1435  
#84 0x0805d364 in rb\_call (klass=3082638980, recv=3082638840, mid=6712,  
argc=2,  
argv=0xb7c37024, scope=3) at eval.c:1449  
#85 0x0805d5f0 in rb\_funcall2 (recv=3082638840, mid=6712, argc=2,  
argv=0xb7c37024)  
at eval.c:1548  
#86 0x08071970 in rb\_f\_puts (argc=2, argv=0xb7c37024) at io.c:4567  
#87 0x08101600 in call\_cfunc (func=0x807192a \<rb\_f\_puts\>,  
recv=3082638840, len=-1,  
argc=2, argv=0xb7c37024) at vm\_insnhelper.c:282  
#88 0x08101112 in vm\_call0 (th=0x819c990, klass=3083036220,  
recv=3082638840,  
id=6712, oid=0, argc=2, argv=0xb7c37024, body=0xb7c24090, nosuper=0)  
at vm.c:457  
#89 0x0805d315 in rb\_call0 (klass=3083036220, recv=3082638840, mid=6712,  
argc=2,  
argv=0xb7c37024, scope=3, self=3082638840) at eval.c:1435  
#90 0x0805d364 in rb\_call (klass=3082638980, recv=3082638840, mid=6712,  
argc=2,  
argv=0xb7c37024, scope=3) at eval.c:1449  
#91 0x0805d5f0 in rb\_funcall2 (recv=3082638840, mid=6712, argc=2,  
argv=0xb7c37024)  
at eval.c:1548  
#92 0x08071970 in rb\_f\_puts (argc=2, argv=0xb7c37024) at io.c:4567  
—Type to continue, or q to quit—  
#93 0x08101600 in call\_cfunc (func=0x807192a \<rb\_f\_puts\>,  
recv=3082638840, len=-1,  
argc=2, argv=0xb7c37024) at vm\_insnhelper.c:282  
#94 0x08101112 in vm\_call0 (th=0x819c990, klass=3083036220,  
recv=3082638840,  
id=6712, oid=0, argc=2, argv=0xb7c37024, body=0xb7c24090, nosuper=0)  
at vm.c:457  
#95 0x0805d315 in rb\_call0 (klass=3083036220, recv=3082638840, mid=6712,  
argc=2,  
argv=0xb7c37024, scope=3, self=3082638840) at eval.c:1435  
#96 0x0805d364 in rb\_call (klass=3082638980, recv=3082638840, mid=6712,  
argc=2,  
argv=0xb7c37024, scope=3) at eval.c:1449  
#97 0x0805d5f0 in rb\_funcall2 (recv=3082638840, mid=6712, argc=2,  
argv=0xb7c37024)  
at eval.c:1548  
#98 0x08071970 in rb\_f\_puts (argc=2, argv=0xb7c37024) at io.c:4567  
#99 0x08101600 in call\_cfunc (func=0x807192a \<rb\_f\_puts\>,  
recv=3082638840, len=-1,  
argc=2, argv=0xb7c37024) at vm\_insnhelper.c:282  
#100 0x08101112 in vm\_call0 (th=0x819c990, klass=3083036220,  
recv=3082638840,  
id=6712, oid=0, argc=2, argv=0xb7c37024, body=0xb7c24090, nosuper=0)  
at vm.c:457  
#101 0x0805d315 in rb\_call0 (klass=3083036220, recv=3082638840,  
mid=6712, argc=2,  
argv=0xb7c37024, scope=3, self=3082638840) at eval.c:1435  
#102 0x0805d364 in rb\_call (klass=3082638980, recv=3082638840, mid=6712,  
argc=2,  
argv=0xb7c37024, scope=3) at eval.c:1449  
#103 0x0805d5f0 in rb\_funcall2 (recv=3082638840, mid=6712, argc=2,  
argv=0xb7c37024)  
at eval.c:1548  
#104 0x08071970 in rb\_f\_puts (argc=2, argv=0xb7c37024) at io.c:4567  
#105 0x08101600 in call\_cfunc (func=0x807192a \<rb\_f\_puts\>,  
recv=3082638840, len=-1,  
argc=2, argv=0xb7c37024) at vm\_insnhelper.c:282  
#106 0x08101112 in vm\_call0 (th=0x819c990, klass=3083036220,  
recv=3082638840,  
id=6712, oid=0, argc=2, argv=0xb7c37024, body=0xb7c24090, nosuper=0)  
at vm.c:457  
#107 0x0805d315 in rb\_call0 (klass=3083036220, recv=3082638840,  
mid=6712, argc=2,  
argv=0xb7c37024, scope=3, self=3082638840) at eval.c:1435  
#108 0x0805d364 in rb\_call (klass=3082638980, recv=3082638840, mid=6712,  
argc=2,  
argv=0xb7c37024, scope=3) at eval.c:1449  
#109 0x0805d5f0 in rb\_funcall2 (recv=3082638840, mid=6712, argc=2,  
argv=0xb7c37024)  
at eval.c:1548  
#110 0x08071970 in rb\_f\_puts (argc=2, argv=0xb7c37024) at io.c:4567  
#111 0x08101600 in call\_cfunc (func=0x807192a \<rb\_f\_puts\>,  
recv=3082638840, len=-1,  
argc=2, argv=0xb7c37024) at vm\_insnhelper.c:282  
#112 0x08101112 in vm\_call0 (th=0x819c990, klass=3083036220,  
recv=3082638840,  
id=6712, oid=0, argc=2, argv=0xb7c37024, body=0xb7c24090, nosuper=0)  
at vm.c:457  
#113 0x0805d315 in rb\_call0 (klass=3083036220, recv=3082638840,  
mid=6712, argc=2,  
argv=0xb7c37024, scope=3, self=3082638840) at eval.c:1435  
#114 0x0805d364 in rb\_call (klass=3082638980, recv=3082638840, mid=6712,  
argc=2,  
argv=0xb7c37024, scope=3) at eval.c:1449  
#115 0x0805d5f0 in rb\_funcall2 (recv=3082638840, mid=6712, argc=2,  
argv=0xb7c37024)  
at eval.c:1548

---

<div class="post-metadata">

**Author:** ![unknown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/4bbf92/32.png) [@unknown](https://www.ruby-forum.com/u/unknown)\
**Post date:** [March 15, 2008, 7:19am UTC](https://www.ruby-forum.com/t/puts-b-g-bsegv/132006/2 "2008-03-15T07:19:27Z")

</div>

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

At Sat, 15 Mar 2008 12:43:25 +0900,  
removed\_email\_address@domain.invalid wrote in [ruby-dev:34059]:

> $stdoute$B$KJL$N%\*%V%8%’%/%H$r;XDj$7$?\>l9g!"e(Bputse$B$Ge(BSEGVe$B$j$^$9!#e(B  
> Ruby 1.9.0e$B$G$OBg\>fIW$G$9!#e(B

e$B%9%?%C%/%\*!\<%P!\<%U%m!\<$7$F$^$9$M!#860x$O!“e(Br15564e$B$Ge(BKernel#putse$B$,e(B  
$stdout.putse$B$r8F$V$h$&$K$J$C$?$N$G$9$,!”$3$Ne(BLoggere$B$Oe(Bputse$B%a%=%C%Ie(B  
e$B$r;}$C$F$$$J$$$N$Ge(BKernel#putse$B$,$^$?8F$P$l$k$3$H$K$J$k$?$a$G$9!#e(B

> class Logger  
> def write(obj)  
> STDOUT.print Time.now.strftime("%Y/%m/%d %H:%M:%S:"), obj  
> end  
> end  
> $stdout = Logger.new

e$BBP1~$H$7$F$OFs$D$[$I;W$$IU$-$^$9$,!"$I$&$7$^$7$g$&$+!#e(B

1. r15564e$B$re(Breverte$B$9$k!#e(B

2. 

$stdoute$B$N;EMM$rJQ$($F!"e(Bwritee$B$@$1$G$J$/e(Bputs,putce$B$bDj5AI,?$K$9e(B  
e$B$k!#e(BKernel#putse$B$r8F$s$G$7$^$&$N$rKI$0$?$a$K!"e(Brb\_f\_putce$B$He(B  
rb\_f\_putse$B$G$Oe(Brb\_funcall2e$B$G$O$J$/e(Brb\_funcall3e$B$r;H$&$h$&$K$9$k!#e(B

---

<div class="post-metadata">

**Author:** ![unknown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/4bbf92/32.png) [@unknown](https://www.ruby-forum.com/u/unknown)\
**Post date:** [March 15, 2008, 7:41am UTC](https://www.ruby-forum.com/t/puts-b-g-bsegv/132006/3 "2008-03-15T07:41:44Z")

</div>

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

At Sat, 15 Mar 2008 15:18:33 +0900,  
Nobuyoshi N. wrote in [ruby-dev:34061]:

> > def write(obj)  
> > e$B$k!#e(BKernel#putse$B$r8F$s$G$7$^$&$N$rKI$0$?$a$K!"e(Brb\_f\_putce$B$He(B  
> > rb\_f\_putse$B$G$Oe(Brb\_funcall2e$B$G$O$J$/e(Brb\_funcall3e$B$r;H$&$h$&$K$9$k!#e(B

e$B$b$&0l$D;W$$IU$-$^$7$?!#e(B

1. 

selfe$B$,e(B$stdoute$B$J$ie(BIO#putc,IO#putse$B$rD\>@\8F$V!"e(B$stdoute$B0J30$J$ie(B  
$stdoute$B$N%a%=%C%I$r8F$V!#e(B

# Index: io.c

— io.c (revision 15780)  
+++ io.c (working copy)  
@@ -4486,4 +4486,7 @@ static VALUE  
rb\_f\_putc(VALUE recv, VALUE ch)  
{

- if (recv == rb\_stdout) {
- return rb\_io\_putc(recv, ch);
- }  
return rb\_funcall2(rb\_stdout, rb\_intern(“putc”), 1, &ch);  
}  
@@ -4563,6 +4566,9 @@ rb\_io\_puts(int argc, VALUE \*argv, VALUE

static VALUE  
-rb\_f\_puts(int argc, VALUE \*argv)  
+rb\_f\_puts(int argc, VALUE \*argv, VALUE recv)  
{

- if (recv == rb\_stdout) {
- return rb\_io\_puts(argc, argv, recv);
- }  
return rb\_funcall2(rb\_stdout, rb\_intern(“puts”), argc, argv);  
}
