Как я могу получить исходный код утилиты linux?

эта команда действительно очень полезна, но где я могу получить исходный код, чтобы увидеть, что происходит внутри.

Благодарю .


person Haiyuan Zhang    schedule 17.09.2009    source источник


Ответы (3)


Утилита tail является частью coreutils в Linux.

Я всегда считал, что FreeBSD имеет гораздо более четкий исходный код, чем утилиты gnu. Итак, вот tail.c в проекте FreeBSD:

person Stef    schedule 17.09.2009
comment
+1 за разнообразие, хотя первоначальный вопрос был об утилите Linux. - person Michael Krelin - hacker; 17.09.2009
comment
Мне нравится, что версия для Linux в несколько раз длиннее версии для BSD. - person Maxy-B; 04.09.2012
comment
Версия BSD короче, потому что функции, выполняющие всю работу, не находятся в этом файле. то есть: следовать(). - person Ben L.; 27.04.2013

Покопайтесь на сайте uclinux. Поскольку они распространяли программное обеспечение, они обязаны так или иначе сделать исходный код доступным.

Или вы можете прочитать man fseek и предположить, как это можно сделать.

NB-- См. комментарии Уильяма ниже, есть случаи, когда вы не можете использовать поиск.

person dmckee --- ex-moderator kitten    schedule 17.09.2009
comment
хвост не использует fseek. Если бы это было так, это не работало бы в потоке (например, 'grep pat file | tail') - person William Pursell; 17.09.2009
comment
Хм, никогда не думал об этом. Спасибо. Я должен думать, что это все равно будет быстрее при работе с поисковым вводом. - person dmckee --- ex-moderator kitten; 17.09.2009
comment
Это не совсем так. tail не всегда использует поиск ;-) - person Michael Krelin - hacker; 17.09.2009

Возможно, вам будет интересно написать собственное упражнение. Подавляющее большинство инструментов командной строки Unix представляют собой страницу или около того довольно простого кода C.

Чтобы просто посмотреть на код, исходники GNU CoreUtils легко найти на gnu.org или на вашем любимом зеркальном сайте Linux.

person Mark Bessey    schedule 17.09.2009
comment
Я написал довольно полный набор инструментов для MS-DOS, когда Linux только зарождался. И хотя многие, безусловно, прямолинейны, я бы не стал говорить «страница» и не сказал бы «подавляющее большинство». Например, find и ls были значительно сложнее. - person NVRAM; 17.09.2009
comment
Ядро большинства инструментов, как правило, короткое. Но обработка аргументов и обработка угловых случаев могут быть болезненными. - person dmckee --- ex-moderator kitten; 17.09.2009
comment
Да, я, вероятно, должен был сказать, что многие инструменты короткие и простые. У хвоста GNU много опций, поэтому он, вероятно, не подходит под категорию простых. Версия tail, которую использовало бы большинство людей (например, файл tail -xxx или файл tail -f), была бы довольно простой. - person Mark Bessey; 17.09.2009