OS-Specific "\n" Interpolation?

R

Rob Muhlestein

Coming from Perl and C I have come to expect "\n" to be translated
differently depending on OS--especially when doing sockets protocol
programming. Ruby *appears* to be subject to this same OS/clib
translation issue which is so often overlooked. Was hoping Ruby
shielded the average user from this. Has anyone else had any experience
confirming or denying this? I've written up the details in a blog post:

http://rob.muhlestein.net/2007/01/watch-those-newlines-ruby-no-different.html
 
X

Xavier Noria

Coming from Perl and C I have come to expect "\n" to be translated
differently depending on OS--especially when doing sockets protocol
programming. Ruby *appears* to be subject to this same OS/clib
translation issue which is so often overlooked. Was hoping Ruby
shielded the average user from this. Has anyone else had any
experience
confirming or denying this? I've written up the details in a blog
post:

http://rob.muhlestein.net/2007/01/watch-those-newlines-ruby-no-
different.html

In Ruby "\n" is a string of lentght 1 in all systems, and it is equal
to "\012" in all platforms. This works as in Perl and other languages
that inherit from C the way newlines are handled[*], except it is
simpler because it does not have the MacPerl exception.

In these languages you write portable sockets programming by
binmodeing the socket and hard-coding "\015\012" or whatever.

As a side note, by default modern Perl performs newlines transaltion
on CRLF platforms via the custom PerlIO I/O layer, the C Ruby
interpreter delegates this to stdio.

-- fxn

[*] http://www.onlamp.com/pub/a/onlamp/2006/08/17/understanding-
newlines.html
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,764
Messages
2,569,567
Members
45,041
Latest member
RomeoFarnh

Latest Threads

Top