diff options
Diffstat (limited to 'cmd_uptime.c')
-rw-r--r-- | cmd_uptime.c | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/cmd_uptime.c b/cmd_uptime.c index f745be0..285aec1 100644 --- a/cmd_uptime.c +++ b/cmd_uptime.c @@ -1,13 +1,34 @@ #include "cmd_uptime.h" +#define PROCFS_PATH "/proc" +#define PROCFS_UPTIME_PATH PROCFS_PATH "/uptime" + void *cmd_uptime(void *data) { char *param = (char *)data; char *ret = NULL; + const int buf_size = 128; + char buf[buf_size+1]; + printf("UPTIME\n"); - - ret = alloc_new_str("UpTime is infinite\n"); + + FILE *f=NULL; + double d1,d2; + int i1,i2; + + f = fopen(PROCFS_UPTIME_PATH,"r"); + fscanf(f,"%lf %lf", &d1, &d2); + fclose(f); + + printf("Readed %lf %lf\n", d1, d2); + i1 = d1; + i2 = d2; + + printf("Days %d Hours %d Minutes %d\n",i1/(3600*24),i1/(3600)%24, (i1/60)%60); + snprintf(buf, buf_size,"Days %d Hours %d Minutes %d\n",i1/(3600*24),i1/(3600)%24, (i1/60)%60); + + ret = alloc_new_str(buf); return ret; }
\ No newline at end of file |