我在哪里可以找到 `uptime` 的源代码?

Dha*_*mit 8 fedora source uptime

我正在学习 Python。到现在为止,我一直只做基本的 Python 编码。一天前,我检查了tree命令的python实现。突然我想到为uptime. 我不知道它是用哪种语言实现的,以及克隆它所涉及的复杂性是什么。

但是我找不到它的源代码。我正在使用 Fedora 14。安装了 kernel-devel 包。我做了,whereis uptime但是/usr/bin/uptime使用 vim 打开时生成的文件显示奇怪的符号。谷歌搜索其源代码也无法产生预期的结果。我在哪里可以找到它的源代码?

mat*_*tdm 9

通常,在基于 RPM 的发行版(如 Fedora)上,您可以找到提供给定命令的软件包名称rpm -qf /path/to/command。像这样:

$ rpm -qf $( which uptime )
procps-3.2.8-18.20110302git.fc16.x86_64
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用yumdownloader --source procps. (yumdownloader 来自yum-utils包,如果你还没有安装它。)一旦你有了 src.rpm,你可以用rpm -i或解压它rpm2cpio

或者,在许多情况下,您可以查询项目 URL 的 RPM 包,这可能有助于您指向上游源:

$ rpm -qi procps|grep ^URL
URL         : http://gitorious.org/procps
Run Code Online (Sandbox Code Playgroud)

而且,很酷,代码可以方便地在线浏览。如果您按照它进行操作,基本上它所做的就是阅读/proc/uptime并漂亮地打印出来。


Sha*_*aun 8

正常运行时间是 'procps' 包的一部分,上游源位于http://procps.sourceforge.net/ (不是 Fedora 用户,所以不确定在哪里可以找到他们的 .src.rpm)。

然而,要回答你没有问的问题;看看 /proc/uptime 第一个数字是自启动以来的秒数。你应该能够很容易地把它变成可用的东西:)