2016-10-08 46 views
0

我正在讀Kernighan & Ritchie的「The C Programming Language」,並且遇到了一些模仿某些Unix命令(也在Linux中實現)的程序,例如cat命令。程序使用命令行參數,就像原始的cat命令一樣。 我只是想知道他們是否是同一件事。 糾正我,如果我錯了,任何幫助,將不勝感激。Linux命令是否真的是C對象文件?

+0

根據你的標題,答案是肯定的。但投票結束,因爲這是Stackoverflow的主題。祝你好運。 – shellter

+3

你是說Brian W. Kernighan和Dennis M. Ritchie?發明C發明Unix的人?你想知道他們的'cat'命令類似於今天使用的'cat'嗎? – deamentiaemundi

+0

在某些Linux發行版中,這些命令中的很多都是GNU的coreutils軟件包的一部分。你可以在這裏找到許多這些工具的源代碼(http://git.savannah.gnu.org/cgit/coreutils.git/tree/src)。 – bleakgadfly

回答

1

在一個命令行環境(例如當然是Unix/Linux)中,抽象的一個主要單位是命令。一個命令有一個定義良好的接口:它期望的命令行參數,它讀取的輸入(如果有的話)以及它產生的輸出。您可以隨時重新實現一個命令,或者使用不同的內部算法或不同的語言,或者僅僅是因爲您想編寫自己的版本。是的,cat最初是用C語言編寫的,但我們可以用C++或Perl,Python或sh或其他語言來重寫它。只要我們的重新實現符合相同的接口要求,我們就可以準確地說它是「cat」。

相關問題