- 1
memcpy (stderr, stdout, sizeof (FILE));
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+109
memcpy (stderr, stdout, sizeof (FILE));
переписали потроха stdout в stderr. Что привело к перенаправлению stderr в stdout.
Бля, я уже знаю без подсказки сигнатуру memcpy, мне пиздец походу, доктора звать поздно.
А чего тут знать-то...
Легко запомнить: представляешь, какую сигнатуру сделал бы любой вменяемый человек, изменяешь в этой сигнатуре порядок dest/source, получаешь сигнатуру memcpy.
уже как-то обсуждалось тут оное.
порядок в memcpy аналогичен порядку в обычном присваивании: dst = src; так что всё вменяемо и логично.
И именно поэтому ты ошибся в первом комменте.
Я не ошибся. Перестает работать именно с stdout. Хотя с него только чтение идет в memcpy.
http://ideone.com/Phd7IG
там мы же пишем stderr в memcpy, а не &stderr. Поэтому третий аргумент как раз размер сущности, адрес которой есть первый (второй) аргумент.
Так не сделали потому, что это не винапи блядь, это кроссплатформенная сишколиба.
И что? Во многих кроссплатформенных сишколибах наружу торчат только всякие hui_t да djigurda_t. Это только увеличивает их кроссплатформенность.
Ungeheuern созвучно с überqueren И не только "монстр" но чудовищный, ужасающий, неимоверный, громадный, прям как С++