Я читал «Язык программирования C» от Kernighan & Ritchie и наткнулся на некоторые программы, которые имитируют некоторые команды Unix (также реализованные в Linux), такие как команда cat
. Программа приняла аргументы командной строки так же, как и исходная команда cat
. Мне просто интересно узнать, являются ли они такими же или нет. Исправьте меня, если я ошибаюсь, любая помощь будет оценена.Являются ли Linux действительно файлами объектов C?
0
A
ответ
1
В среде командной строки (например, Unix/Linux) основным элементом абстракции является команда . Команда имеет четко определенный интерфейс: аргументы командной строки, которые он ожидает, ввод, который он читает (если есть), и результат, который он генерирует. Вы можете повторно реализовать команду в любое удобное для вас время, используя либо другой внутренний алгоритм, либо другой язык, либо просто потому, что хотите написать свою собственную версию. Да, cat
был первоначально написан на C, но мы могли бы переписать его на языках C++, Perl или Python, или sh, или на других языках. Пока наша переоценка соответствует тем же требованиям интерфейса, мы можем точно сказать, что она «есть» cat
.
На ваш заголовок дается ответ. Но голосование закрывается, так как это не по теме для Stackoverflow. Удачи. – shellter
Вы имеете в виду Брайана У. Кернигана и Денниса М. Ричи? Люди, которые изобрели C, чтобы изобрести Unix? И вам интересно, что их команда 'cat' похожа на' cat', используемый сегодня? – deamentiaemundi
Многие из этих команд относятся к некоторым дистрибутивам Linux, входящим в пакет GNU Coreutils. Вы можете найти исходный код для многих из этих инструментов [здесь] (http://git.savannah.gnu.org/cgit/coreutils.git/tree/src). – bleakgadfly