Comments 8
Узнал много нового — спасибо! Для меня ядро — это что-то непонятное и даже страшное!.. А уж добавить или исправить в нём что-то — это вообще необъяснимое и недостижимое!.. Может быть и я когда-нибудь смогу сделать патч для ядра, но пока в это слабо верится.
+1
Я хочу в будущем написать статью, рассказывающую что новичок может улучшить или исправить в ядре. Забегая вперёд, могу подсказать следующую задачу (подразумевается владение английским хоть какое, понимание как работать c Git, азы языка Си и самое главное — рвение сделать это): в ядре ещё не до конца вычистили куски, где можно использовать %*ph. Такие места ищутся просто по паттернам %02x[ :-]02x[ :-]02x. Если есть интерес и желание, могу помочь более детально. Мой JID: andriy@jabber.ru.
+5
Вот, написал: habrahabr.ru/post/253123/. Попробуйте обязательно, у вас всё получится!
0
Хм. Эти суффиксные модификаторы, во-первых, ломают обратную совместимость. А во-вторых, приводят к неочевидному парсированию — нужно помнить все суффиксы, чтобы отличать их от просто букв, которые должны напечататься как есть.
Можно же было префиксами выразиться, пусть даже ценой увеличения форматной строки на один символ.
Можно же было префиксами выразиться, пусть даже ценой увеличения форматной строки на один символ.
+2
Да, всё так, но ядро само по себе такая штука, где нужно помнить довольно большое число фишек.
0
Мы — в MySQL в свое время — как раз стали расширять префиксами и новыми модификаторами. Суффиксы — они не в стиле printf, это что-то новое. У нас все как раз соответствовало духу printf. был модификатор `, использовался как "%`s", был новый символ формата b, использовался как "%b". Минусы такого решения — в редакторе подсветка синтаксиса их не подсвечивает (мне-то пофиг, у меня vim, я его и подкрутить могу, другим мешает). И особенно неприятно — компилятор все время предупреждения выдает на неправильную форматную строку. А суффиксное решение компилятор не отвлекает.
0
Sign up to leave a comment.
Сделаем код чище: Специальные расширения vsnprintf() в ядре Linux