【问题标题】:Are Linux commands really C object files? [closed]Linux 命令真的是 C 目标文件吗? [关闭]
【发布时间】:2016-10-08 13:48:29
【问题描述】:

我在阅读 Kernighan & Ritchie 的“The C Programming Language”时遇到了一些模仿一些 Unix 命令(也在 Linux 中实现)的程序,例如 cat 命令。该程序采用命令行参数,就像原始的cat 命令一样。 我只是想知道它们是否相同。 如果我错了,请纠正我,任何帮助将不胜感激。

【问题讨论】:

  • 根据您的标题,答案是肯定的。但投票结束,因为这对 Stackoverflow 来说是题外话。祝你好运。
  • 你是说 Brian W. Kernighan 和 Dennis M. Ritchie?发明 C 来发明 Unix 的人?你想知道他们的cat 命令与今天使用的cat 相似吗?
  • 在某些 Linux 发行版上,许多这些命令是 GNU 的 coreutils 包的一部分。您可以找到其中许多工具的源代码here
  • K&R 的猫可能比今天的猫选择更少。
  • @MarkPlotnick 怎么样!最初的cat个选项,当它得到第一个选项时,顽固的Unix老卫士发出了警报,其中一个人写了一篇广为流传的文章,cat -v 被认为是有害的.

标签: c linux unix object-files


【解决方案1】:

在命令行环境(例如,当然,Unix/Linux)中,抽象的主要单元是命令。命令有一个定义明确的接口:它期望的命令行参数、它读取的输入(如果有的话)以及它生成的输出。您可以随时重新实现命令,使用不同的内部算法或不同的语言,或者只是因为您想编写自己的版本。是的,cat 最初是用 C 编写的,但我们可以用 C++、Perl、Python、sh 或其他语言重写它。只要我们的重新实现满足同样的接口需求,我们就可以准确的说它“是”cat

【讨论】:

    猜你喜欢
    • 2013-01-11
    • 2012-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-30
    • 1970-01-01
    相关资源
    最近更新 更多