Ммм, я тут не силён. Я вот только несколько лет назад видел вот этих чуваков которые напрямую из userspace данные отдавали сетевушкой: http://info.iet.unipi.it/~luigi/netmap/ . Это, конечно, трава позабористее sendfile и, наверно, нерелевантно к данной дискуссии, но.. я просто оставил это сдесь.
Вот мы фигней маемся, а кто-то реального бота написал: nixbrain. Ведь поначалу и не поймешь, что это бот (кажется сначала, будто это просто какой-то четырехлетний детсадовец вместо тихого часа с компьютера воспитательницы на ЛОРе флудит).
Посты странные, но я бы не сказал, что так уж на бота похоже. На больного больше - я шизофреника в метро видел, который примерно подобным образом и разговаривал.
Пайпы так-то нахрен не нужны, когда надо передавать большой кусок - они нужны в юзкейсе синхронно передал->прочитал->передал->прочитал. Ну и как кастыли, когда надо сграбить какой-то stdout.
Поэтому их нет смысла заменять на любой длинны буфер через шаредмем, ибо один хрен нужна синхронизация.
Очевидно, что там есть statement'ы, которые не канают по твоему шаблону. Код можешь сам нагуглить, это же opensource.
И?
case L_STDERR:
case L_LOGFILE:
current = time(NULL);
(void)strftime(tstamp, sizeof(tstamp), LOG_TIME_FORMAT, localtime(¤t));
fprintf(log_file_fd, "[%s] %s (%d): %s\n", tstamp, log_ident, getpid(), buff);
fflush(out);
break;
Так сделать не осилось?
А почему не FILE?
Потамучто тормазное, непредсказуемое уродское говно, не? А почему не fd?
Давай по-другому: тебя по месту работы никто еще в ссаные тряпки носом не тыкал?
Понимаешь в чем штука - я Царь. Кто меня будет тыкать, нуль навроде тебя?
И помимо stdout других файлов, куда можно\нужно выдать форматированный вывод, конечно же, нет.
Нету. Я не пишу школотрон код с текстовым говном. А вот нули пишут и ведь не потаму что текст «удобен», а потамучто нули.
Куча других копирует. Тебя же это не смущает. Или смущает, и ядром ты тоже крайне недоволен?
Причём тут другие, почему балаболы всегда за кем-то прячатся?
Ты начал кукарекать, что без копирования никак, только один адресспейс, а вот оно как оказалось - обосрался. ммап не копирует и адресспейсы разные. Зачем ты съехал на другое?
И да, всё копирование в ядре параша.
Чем принципиально отличается read от какого-нибудь fgets в случае c /proc/modules? Только наличием буфера?
Какой нахрен фгетс - это параша вообще для аутистов. И причем тут фгетс и как он связан с ридом? Мб ты спутал с фридом?
Отвечу - да, наличием мне нужной непредсказуемой параши, да и вообще нахрен не нужной в 100% юзкейсов, если твой уровень выше первоклашки. Уродским FILE *, ублюдскими 4-мя аргументами и прочей хернёй.
У меня есть фдешка - есть память. Мне нахрен не упёрлись всякие стримопараши и какие-то блоки или что там во фридпараши.
Строго говоря, в данном случае даже все эти вызовы необязательны - несколько строчек шелла все вызовут за тебя и покажут... Что там было? Путь до файла модуля?
Строго говоря - это пример. Меня не интересуют ни твои шелы, ни прочее говно.
Что-то не заметил кардинальных изменений ни в работе сокетов, ни в работе тех же пайпов.
Пайпы нахрен никому не упали. Это банальный синхрообен месагами и делать что-то с ним нет смысла, ибо блокируемый.
Есть такая херня как шаредмем уже сотню лет как изобретена.
Документация десятилетней давности все так же к ним подходит.
Естественно, ибо как были парашей так и остались.
Бинарный код? Дизассемблирование? Ты о чем вообще?
Бинарь. Понимаешь - когда я пишу/читаю из файла мне там нахрен не нужен тест - я пишу и читаю бинарь, ибо я не аутист. Бинарные логи, бинарные дампы, банарные форматы/протоколы, окда?
Ты хотел сказать «ЧСВ»?
Нет, я сказал то, что хотел.
Дашь посмотреть, что ты умеешь? Ну там сорцы проектов каких-нибудь?
Для начала выкати свой пруфец компетентности в оценки моего кода, а так радомным нулям что-то линковать я не обязан.
Если ты хочешь увидеть разницу между нами - вперёд, лорбатл создан для тебя. Придумываешь конкретную задачу - пилим, ты обсираешься - расходимся.