如何写unix"时间"像实用程序

时间:2018-01-05 06:56:39

标签: c unix

我是unix的新手并且学习编写一些我们可以在ubuntu中使用gcc编译器执行的c程序。问题:我需要写一些类似的东西:" time ls"时间应该由我的程序取代。我知道如何为此编写c程序,但是,我无法理解如果我用实用程序替换时间,unix将如何确定要执行的内容让我们说" mytime"例如?这方面的一些背景确实有帮助

1 个答案:

答案 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 variableenviron(7)使用的shells(另请参阅execvp(3))。您可以设置PATH以满足您的需求。您可能也感兴趣strace(1)来了解命令或进程正在执行的system calls。请注意,shell是普通的程序,你可以编写自己的程序(这是一个非常有用的练习)。大多数shell都是free software,您可以学习其源代码。 sash是一个非常简单的shell ...