⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 whattime.c

📁 openmosix使用工具.mtop, mosmon, mps等。用于控制openmosix。openmosix 使用工具.mtop, mosmon, mps等。用于控制openmosix。openm
💻 C
字号:
/* This is a trivial uptime program.  I hereby release this program * into the public domain.  I disclaim any responsibility for this * program --- use it at your own risk.  (as if there were any.. ;-) * -michaelkjohnson (johnsonm@sunsite.unc.edu) * * Modified by Larry Greenfield to give a more traditional output, * count users, etc.  (greenfie@gauss.rutgers.edu) * * Modified by mkj again to fix a few tiny buglies. * * Modified by J. Cowley to add printing the uptime message to a * string (for top) and to optimize file handling.  19 Mar 1993. * */#include <stdio.h>#include <stdlib.h>#include <string.h>#include <fcntl.h>#include <unistd.h>#include <time.h>#include <utmp.h>#include <sys/ioctl.h>#include "whattime.h"#include "sysinfo.h"static char buf[128];double av[3];char *sprint_uptime(void) {  struct utmp *utmpstruct;  int upminutes, uphours, updays;  int pos;  struct tm *realtime;  time_t realseconds;  int numuser;  double uptime_secs, idle_secs;/* first get the current time */  time(&realseconds);  realtime = localtime(&realseconds);  pos = sprintf(buf, " %2d:%02d%s  ",		realtime->tm_hour%12 ? realtime->tm_hour%12 : 12,		realtime->tm_min, realtime->tm_hour > 11 ? "pm" : "am");/* read and calculate the amount of uptime */  uptime(&uptime_secs, &idle_secs);  updays = (int) uptime_secs / (60*60*24);  strcat (buf, "up ");  pos += 3;  if (updays)    pos += sprintf(buf + pos, "%d day%s, ", updays, (updays != 1) ? "s" : "");  upminutes = (int) uptime_secs / 60;  uphours = upminutes / 60;  uphours = uphours % 24;  upminutes = upminutes % 60;  if(uphours)    pos += sprintf(buf + pos, "%2d:%02d, ", uphours, upminutes);  else    pos += sprintf(buf + pos, "%d min, ", upminutes);/* count the number of users */  numuser = 0;  setutent();  while ((utmpstruct = getutent())) {    if ((utmpstruct->ut_type == USER_PROCESS) &&       (utmpstruct->ut_name[0] != '\0'))      numuser++;  }  endutent();  pos += sprintf(buf + pos, "%2d user%s, ", numuser, numuser == 1 ? "" : "s");  loadavg(&av[0], &av[1], &av[2]);  pos += sprintf(buf + pos, " load average: %.2f, %.2f, %.2f",		 av[0], av[1], av[2]);  return buf;}void print_uptime(void){  printf("%s\n", sprint_uptime());}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -