代码之家  ›  专栏  ›  技术社区  ›  chester89

用哪种语言来实现很少的Linux shell命令(作业)?C++还是C++?关闭]

  •  2
  • chester89  · 技术社区  · 16 年前

    我需要为我的家庭作业实现几个Linux shell命令——其中5个或6个,包括ls。不太了解每个命令要实现哪些参数。。。
    我计划使用C++,但是当我问同事要选择什么语言——C语言或C++时,他说解释器不是一个传统意义上的程序,它是一个功能工具,它绝对必须在C.实现。

    那么,你的观点是什么?提前谢谢。
    这是一个单独的任务-我的意思是对我的小组中的每个人,所以不应该合作。
    我有低级编程、指针算术、void*等方面的经验。

    12 回复  |  直到 13 年前
        1
  •  9
  •   John Gietzen    16 年前

    弗斯特 :使用你所知道的。

    不管怎样,C++是你的环境中非常可行的选择。所以,仅仅使用它并不是一个错误。

    第二 你的朋友错了(我会用更严厉的话,但我会很好的。)

    绝对地

    附言: 你仍然可以使用C++编译器来编译C程序。你能行 一切 在C++中可用。

        2
  •  7
  •   Michael F    16 年前

    你知道C++,你喜欢,所以用C++。

    “必须用C语言实现”完全是废话。不要落入那个陷阱。

        3
  •  1
  •   Doug T.    16 年前

    这真的没关系。你最喜欢用什么?您可以用这两种语言编写出相当好的代码。

    • C++如果你想使用面向对象和/或泛型编程工具

    如果您只是对完成某项任务感兴趣,我可能会使用python或其他脚本语言来完成此任务。

        4
  •  1
  •   Chen Levy    16 年前

    我相信,最初的目标是让学生熟悉手册第3节“C程序的C库例程”,以及第2节“Unix和C系统调用”。我记得问老师我是否可以用C++写作业,没有答案,C是要求。

    man 3 getopt 对我来说。我希望你能比我聪明。

        5
  •  1
  •   Mr. Shiny and New 安宇    16 年前

    因为这是一个家庭作业,我会和老师或给你评分的人核实。一个好的讲师应该能理解C++程序和C程序,如果它不是以疯狂的方式写的(但是学生怎么知道什么是疯狂的?)

    如果你的老师不在乎你用什么语言,如果你想更快地完成工作,就用你最熟悉的语言。如果你想要挑战,使用你不太熟悉的语言。上学是犯错误的好时机,但在学期末你的成绩很重要。

    最后,如果任务的目的是学习本机API,那么不要过于忙于包装本机API或重新发明它。如果你能拿出一个优雅的包装器来证明你理解API,那很好,但是你的导师可能会因为你的程序是针对API而不是它工作而感到恼火。

        6
  •  0
  •   Fred Larson    16 年前

        7
  •  0
  •   tster    16 年前

    你的朋友不知道他们在说什么。C和C++都是编译的(解释程序存在,但通常使用编译它)。最后,C编译二进制和C++编译二进制文件的行为也一样。你想用什么就用什么,这是一个偏好的问题。

        8
  •  0
  •   mouviciel    16 年前

    传统意义上的节目

    关于你的第二个论点:如果你不懂C,不要用C编程(除非你的目标是学习它,这很好)。 . 这可能是一个笑话,但我认为这也是一个很好的建议。

        9
  •  0
  •   pmg    16 年前

    但是,用C你可以 cheat

    不要作弊! 各种公用设施的来源并不适用于 一般的 使用。

        10
  •  0
  •   Cătălin Pitiș    16 年前

    如果你觉得C++是可满足的…使用它。你可以用 Boost Program Options

        11
  •  0
  •   jmucchiello    16 年前

    实际上,你可以两者都用。这在很大程度上取决于您正在编写的命令。

    C++有一个缺点,即可执行大小。如果您真的要实现shell命令,那么您希望可执行文件较小,而C更可能生成较小的可执行文件。当然,这不是唯一的限制。您也希望代码易于使用。因此,混合方法可能会带来好处。对于一个LS,在那里很少有输入处理的命令,您可以使用C STDIO .H库来完成所有输出,这样就不必包括更大的C++ IoSt流库。

    OTOH,这是一个家庭作业,所以我怀疑你会因为一个大的可执行文件大小而被扣分,所以在这个特定的例子中,你可能应该坚持你最了解的。

        12
  •  0
  •   oddenodin    15 年前