metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2008-11-04 10:05 am

Ruby

Собаки бешеные.
Вывожу бинарную строку stdout.print - это пачвярие заменяет 0A на 0D0A :)

[identity profile] mr-aleph.livejournal.com 2008-11-04 08:30 am (UTC)(link)
если ты это узнал под виндой перенаправив ввывод в файл, то они тут не виноваты.

просто попробуй сделать тоже самое с
#include <cstdio>

int main() {
  printf("x\n");
  return 0;
}


тут дело скорее всего в том, что stdout открыт в текстовом, а не бинарном режиме, что и приводит к конверсии между окончаниями строк. вообщем CRT виновата, а не Руби.
Edited 2008-11-04 08:36 (UTC)

[identity profile] metaclass.livejournal.com 2008-11-04 08:45 am (UTC)(link)
Да, на C тоже самое блин, откуда у меня в консоли компилятор С, я им пользуюсь то раз в 10 лет\

И скорее всего в стандарте руби не предусмотрено переключение его в бинарный режим, что-то я такое в гуглах читал.
Забить, выведу во временный бинарный файл, все равно в винде перенаправление на всякой бинарщине тупит постоянно.

[identity profile] psilogic.livejournal.com 2008-11-04 10:22 am (UTC)(link)
stdout - это тебе не файл, это жопа :)

[identity profile] kiryl.livejournal.com 2008-11-04 10:30 am (UTC)(link)
А вызвать $stdout.binmode перед print не помогает?

Опять грабли заботливо разложенные M$.

[identity profile] metaclass.livejournal.com 2008-11-04 10:37 am (UTC)(link)
Помогло. Осталось понять, почему я эту хрень не смог найти в гугле по ключевым словам "ruby stdout binary mode" c первого раза. Сейчас уже нашлась :)

[identity profile] kiryl.livejournal.com 2008-11-04 10:39 am (UTC)(link)
Только помни, что обратно в non-binary режим уже не вернуться :)

[identity profile] metaclass.livejournal.com 2008-11-04 10:45 am (UTC)(link)
Угу, это я уже прочел :)

[identity profile] kiryl.livejournal.com 2008-11-04 10:26 am (UTC)(link)
#include <cstdio>

Какой у вас замечательный C. По рукам за такое.

[identity profile] mr-aleph.livejournal.com 2008-11-04 10:29 am (UTC)(link)
вау, прибыли телепаты, с чего вы взяли, что это C?

[identity profile] jtootf.livejournal.com 2008-11-04 03:26 pm (UTC)(link)
так на то они и телепаты :)

[identity profile] bigfrogg.livejournal.com 2008-11-04 11:16 am (UTC)(link)
Тогда ок)

[identity profile] bigfrogg.livejournal.com 2008-11-04 08:34 am (UTC)(link)
Я вижу всякие опен-сорс технологии захавали вам мозг. Отлично.

[identity profile] weissmann.livejournal.com 2008-11-04 09:20 am (UTC)(link)
Я как-то пытался на c++ переоткрыть стандартный вывод в бинарном режиме. Явным образом. Меня в ответ явным образом майкрософт послал.

[identity profile] max-posedon.livejournal.com 2008-11-04 10:05 am (UTC)(link)
ААА... снова!!! :)))

повторяться не буду, а пока советую почитать String#unpack

[identity profile] metaclass.livejournal.com 2008-11-04 10:23 am (UTC)(link)
Не особо понимаю, чем мне поможет этот метод, если у меня задача вывести бинарную строку в stdout.
Но вообще, это проблема не руби, а сишного рунтайма, как оказалось.

тихим голосом

[identity profile] golosptic.livejournal.com 2008-11-04 12:30 pm (UTC)(link)
...а ведь это могло быть приложение, написаное на Фортране... или на RPG II

;-ЬРЬРЬРЬРЬ

Re: тихим голосом

[identity profile] metaclass.livejournal.com 2008-11-04 01:00 pm (UTC)(link)
Тогда я последую совету из прошлого поста и потребую увеличить зарплату (для оплаты услуг психоаналитиков и психиатров) :)