当前位置: 技术问答>linux和unix
请问ps里面有一个lstart项的值是从哪得来的。
来源: 互联网 发布时间:2015-10-18
本文导语: 在用ps显示进程信息时,有一项为lstart(长时间格式)(使用ps -eo pid,lstart). 我查了ps的源程序,它有一段是这样的: 在ps的output.c文件里面。 static int pr_lstart(char *restrict const outbuf, const proc_t *restrict const pp){ t...
在用ps显示进程信息时,有一项为lstart(长时间格式)(使用ps -eo pid,lstart).
我查了ps的源程序,它有一段是这样的:
在ps的output.c文件里面。
static int pr_lstart(char *restrict const outbuf, const proc_t *restrict const pp){
time_t t;
t = time_of_boot + pp->start_time / Hertz;
return snprintf(outbuf, COLWID, "%24.24s", ctime(&t));
}
因为我对c不是特别的熟悉,所以我无法理解它到底是怎么来的。
我的意思是它用什么方法把系统内核的信息给取出来,而这些信息又在内核的那个地方。
请高手指教。 谢谢!
我查了ps的源程序,它有一段是这样的:
在ps的output.c文件里面。
static int pr_lstart(char *restrict const outbuf, const proc_t *restrict const pp){
time_t t;
t = time_of_boot + pp->start_time / Hertz;
return snprintf(outbuf, COLWID, "%24.24s", ctime(&t));
}
因为我对c不是特别的熟悉,所以我无法理解它到底是怎么来的。
我的意思是它用什么方法把系统内核的信息给取出来,而这些信息又在内核的那个地方。
请高手指教。 谢谢!
|
我没看过ps源码,不过从/proc当中应该可以读出来
具体文件应该是/proc//stat,该文件格式可以从帮助man proc中找到
具体文件应该是/proc//stat,该文件格式可以从帮助man proc中找到