我是unix的新手并且学习编写一些我们可以在ubuntu中使用gcc编译器执行的c程序。问题:我需要写一些类似的东西:" time ls"时间应该由我的程序取代。我知道如何为此编写c程序,但是,我无法理解如果我用实用程序替换时间,unix将如何确定要执行的内容让我们说" mytime"例如?这方面的一些背景确实有帮助
答案 0 :(得分:1)
阅读一些优秀的Linux编程书,也许是ALP - 有点旧,但可以免费下载。
另请阅读intro(2)& syscalls(2)
对于与时间相关的内容,请从time(7)开始。它解释了几个时间概念。然后考虑time(2),gettimeofday(2),getrusage(2),clock_gettime(2),times(2),localtime(3),strftime(3)等......
另请注意,time(1)既可以是shell的内置命令,也可以是/usr/bin/time
中的外部命令。所以它是一些free software,你可以下载和研究它的源代码。
我无法理解unix将如何确定要执行的内容
请注意PATH
variable和environ(7)使用的shells(另请参阅execvp(3))。您可以设置PATH
以满足您的需求。您可能也感兴趣strace(1)来了解命令或进程正在执行的system calls。请注意,shell是普通的程序,你可以编写自己的程序(这是一个非常有用的练习)。大多数shell都是free software,您可以学习其源代码。 sash
是一个非常简单的shell ...