起動から現在までの時間を取得

1388 ワード

起動から現在までの時間を取得します.
shell:
uptimeコマンド.これはlinuxにもunixにも適用されます.
c:
linuxにはstruct sysinfo構造体があります.
	 struct sysinfo {
    310	    long uptime;            /* Seconds since boot */
    311     unsigned long loads[3];     /* 1, 5, and 15 minute load averages */
    312     unsigned long totalram;     /* Total usable main memory size */
    313     unsigned long freeram;      /* Available memory size */
    314     unsigned long sharedram;    /* Amount of shared memory */
    315     unsigned long bufferram;    /* Memory used by buffers */
    316     unsigned long totalswap;    /* Total swap space size */
    317     unsigned long freeswap;     /* swap space still available */
    318     unsigned short procs;       /* Number of current processes */
    319     unsigned short pad;     /* explicit padding for m68k */
    320     unsigned long totalhigh;    /* Total high memory size */
    321     unsigned long freehigh;     /* Available high memory size */
    322     unsigned int mem_unit;      /* Memory unit size in bytes */
    323     char _f[20-2*sizeof(long)-sizeof(int)]; /* Padding: libc5 uses this.. */
    324 }; 

sysinfo()で取得できます. 
solarisではstruct sysinfoがありますが、uptimeはありません.そのため、現在の起動までの時間が取得されません.後で調べてみると、
でkstat_open(), kstat_close(), kstat_lookup()は、実行時間を取得します.具体的には私も実践していません.