| 1 |  | /* | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 2 |  | * i-scream central monitoring system | 
 
 
 
 
 
 
 
 
 
 
 | 3 | < | * http://www.i-scream.org.uk | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 4 | < | * Copyright (C) 2000-2002 i-scream | 
 
 
 
 
 
 
 
 
 | 3 | > | * http://www.i-scream.org | 
 
 
 
 
 | 4 | > | * Copyright (C) 2000-2004 i-scream | 
 
 
 
 
 
 
 
 
 
 
 | 5 |  | * | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 6 |  | * This program is free software; you can redistribute it and/or | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 7 |  | * modify it under the terms of the GNU General Public License | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 24 |  | #include <unistd.h> | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 25 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 26 |  | int main(int argc, char **argv){ | 
 
 
 
 
 
 
 
 
 
 
 | 27 | < |  | 
 
 
 
 
 
 
 
 
 | 27 | > |  | 
 
 
 
 
 
 
 
 
 
 
 | 28 |  | extern char *optarg; | 
 
 
 
 
 
 
 
 
 
 
 | 29 | < | extern int optind; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 30 | < | int c; | 
 
 
 
 
 
 
 
 
 | 29 | > | extern int optind; | 
 
 
 
 
 | 30 | > | int c; | 
 
 
 
 
 
 
 
 
 
 
 | 31 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 32 |  | int delay = 1; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 33 |  | mem_stat_t *mem_stats; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 35 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 36 |  | long long total, free; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 37 |  |  | 
 
 
 
 
 
 
 
 
 
 
 | 38 | < | while ((c = getopt(argc, argv, "d:")) != EOF){ | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 39 | < | switch (c){ | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 40 | < | case 'd': | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 41 | < | delay = atoi(optarg); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 42 | < | break; | 
 
 
 
 
 
 
 
 
 | 38 | > | while ((c = getopt(argc, argv, "d:")) != -1){ | 
 
 
 
 
 | 39 | > | switch (c){ | 
 
 
 
 
 | 40 | > | case 'd': | 
 
 
 
 
 | 41 | > | delay = atoi(optarg); | 
 
 
 
 
 | 42 | > | break; | 
 
 
 
 
 
 
 
 
 
 
 | 43 |  | } | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 44 |  | } | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 45 |  |  | 
 
 
 
 
 
 
 
 | 46 | + | /* Initialise statgrab */ | 
 
 
 
 
 
 
 
 | 47 | + | statgrab_init(); | 
 
 
 
 
 
 
 
 | 48 | + |  | 
 
 
 
 
 
 
 
 | 49 | + | /* Drop setuid/setgid privileges. */ | 
 
 
 
 
 
 
 
 | 50 | + | if (statgrab_drop_privileges() != 0) { | 
 
 
 
 
 
 
 
 | 51 | + | perror("Error. Failed to drop privileges"); | 
 
 
 
 
 
 
 
 | 52 | + | return 1; | 
 
 
 
 
 
 
 
 | 53 | + | } | 
 
 
 
 
 
 
 
 | 54 | + |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 55 |  | if( ((mem_stats=get_memory_stats()) != NULL) && (swap_stats=get_swap_stats()) != NULL){ | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 56 |  | printf("Total memory in bytes : %lld\n", mem_stats->total); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 57 |  | printf("Used memory in bytes : %lld\n", mem_stats->used); | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 70 |  | } | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 71 |  | exit(0); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 72 |  | } | 
 
 
 
 
 
 
 
 
 | 64 | – |  | 
 
 
 
 
 
 
 
 
 | 65 | – |  | 
 
 
 
 
 
 
 
 
 | 66 | – |  |