/* systeminfo.c */ #include #include #include #include #include #include #include int main(int argc,char *argv[]) { struct utsname uts; char cwd[120]; char *env; struct rlimit rlim; struct sysinfo s_info; if(uname(&uts) >= 0){ printf(" System name: %s\n", uts.sysname); printf(" Release: %s\n", uts.release); printf(" Version: %s\n", uts.version); printf(" Hardware: %s\n", uts.machine); printf(" Node name: %s\n", uts.nodename); #ifdef USE_GNU printf(" Domain name: %s\n", uts.domainname); #else printf(" Domain name: %s\n", uts.__domainname); #endif } if(getcwd(cwd,sizeof(cwd))) printf(" Current directory: %s\n", cwd); if((env = getenv("SHELL")) != NULL) printf(" Environment variable SHELL: %s\n", env); printf(" User ID: %d\n", getuid()); printf(" Group ID: %d\n", getgid()); printf(" Process ID: %d\n", getpid()); printf(" Parent process ID: %d\n", getppid()); printf(" Login: %s\n", getlogin()); printf(" User shell: %s\n", getusershell()); printf(" Maximum arg length for exec(): %ld\n", sysconf(_SC_ARG_MAX)); printf(" Maximum processes per user: %ld\n", sysconf(_SC_CHILD_MAX)); printf(" Clock ticks per second: %ld\n", sysconf(_SC_CLK_TCK)); printf(" Maximum streams per process: %ld\n", sysconf(_SC_STREAM_MAX)); printf("Maximum open files per process: %ld\n", sysconf(_SC_OPEN_MAX)); printf("Maximum chars in timezone name: %ld\n", sysconf(_SC_TZNAME_MAX)); printf(" Maximum command line length: %ld\n", sysconf(_SC_LINE_MAX)); printf(" POSIX job control supported: %s\n", sysconf(_SC_CHILD_MAX) ? "true" : "false"); printf(" POSIX.1 compliance (YYYYMM): %ld\n", sysconf(_SC_VERSION)); printf(" POSIX.2 compliance (YYYYMM): %ld\n", sysconf(_SC_2_VERSION)); printf(" POSIX.2 locale by localdef: %s\n", sysconf(_SC_2_LOCALEDEF) ? "true" : "false"); printf(" POSIX.2 software development: %s\n", sysconf(_SC_2_SW_DEV) ? "true" : "false"); sysinfo(&s_info); printf(" Uptime in seconds: %d\n", s_info.uptime); printf(" Load for past 1 minute: %d\n", s_info.loads[0]); printf(" Load for past 5 minutes: %d\n", s_info.loads[1]); printf(" Load for past 15 minutes: %d\n", s_info.loads[2]); printf(" Total amount of RAM: %d\n", s_info.totalram); printf(" Amount of free RAM: %d\n", s_info.freeram); printf(" Amount of shared RAM: %d\n", s_info.sharedram); printf(" Amount of RAM in buffers: %d\n", s_info.bufferram); printf(" Total swap space: %d\n", s_info.totalswap); printf(" Free swap space: %d\n", s_info.freeswap); printf(" Total number of processes: %d\n", s_info.procs); exit(0); }