/* The function display buffer contents */ void display (Buffer *ptrBuffer){ printf("\nPrinting input buffer parameters:\n\n"); printf("The capacity of the buffer is: %d\n",ca_getcapacity(ptrBuffer)); printf("The current size of the buffer is: %d\n",ca_getsize(ptrBuffer)); printf("\nPrinting input buffer contents:\n\n"); ca_print(ptrBuffer); }
int main(int argc, char *argv[]) { int c, go_forever, j; int cflag = 0; /* client stats */ int sflag = 0; /* server stats */ int nflag = 0; /* nfs stats */ int rflag = 0; /* rpc stats */ int mflag = 0; /* mount table stats */ int aflag = 0; /* print acl statistics */ int vflag = 0; /* version specified, 0 specifies all */ int zflag = 0; /* zero stats after printing */ char *split_line = "*******************************************" "*************************************"; interval = 0; count = 0; go_forever = 0; while ((c = getopt(argc, argv, "cnrsmzav:")) != EOF) { switch (c) { case 'c': cflag++; break; case 'n': nflag++; break; case 'r': rflag++; break; case 's': sflag++; break; case 'm': mflag++; break; case 'z': if (geteuid()) fail(0, "Must be root for z flag\n"); zflag++; break; case 'a': aflag++; break; case 'v': vflag = atoi(optarg); if ((vflag < 2) || (vflag > 4)) fail(0, "Invalid version number\n"); break; case '?': default: usage(); } } if (((argc - optind) > 0) && !mflag) { interval = safe_strtoi(argv[optind], "invalid interval"); if (interval < 1) fail(0, "invalid interval\n"); optind++; if ((argc - optind) > 0) { count = safe_strtoi(argv[optind], "invalid count"); if ((count <= 0) || (count == NULL)) fail(0, "invalid count\n"); } optind++; if ((argc - optind) > 0) usage(); /* * no count number was set, so we will loop infinitely * at interval specified */ if (!count) go_forever = 1; stats_timer(interval); } else if (mflag) { if (cflag || rflag || sflag || zflag || nflag || aflag || vflag) fail(0, "The -m flag may not be used with any other flags"); for (j = 0; (argc - optind > 0) && (j < (MAX_PATHS - 1)); j++) { path[j] = argv[optind]; if (*path[j] != '/') fail(0, "Please fully qualify your pathname " "with a leading '/'"); optind++; } path[j] = NULL; if (argc - optind > 0) fprintf(stderr, "Only the first 50 paths " "will be searched for\n"); } setup(); do { if (mflag) { mi_print(); } else { if (sflag && (rpc_clts_server_kstat == NULL || nfs_server_v4_kstat == NULL)) { fprintf(stderr, "nfsstat: kernel is not configured with " "the server nfs and rpc code.\n"); } /* if s and nothing else, all 3 prints are called */ if (sflag || (!sflag && !cflag)) { if (rflag || (!rflag && !nflag && !aflag)) sr_print(zflag); if (nflag || (!rflag && !nflag && !aflag)) sn_print(zflag, vflag); if (aflag || (!rflag && !nflag && !aflag)) sa_print(zflag, vflag); } if (cflag && (rpc_clts_client_kstat == NULL || nfs_client_kstat == NULL)) { fprintf(stderr, "nfsstat: kernel is not configured with" " the client nfs and rpc code.\n"); } if (cflag || (!sflag && !cflag)) { if (rflag || (!rflag && !nflag && !aflag)) cr_print(zflag); if (nflag || (!rflag && !nflag && !aflag)) cn_print(zflag, vflag); if (aflag || (!rflag && !nflag && !aflag)) ca_print(zflag, vflag); } } if (zflag) putstats(); if (interval) printf("%s\n", split_line); if (interval > 0) (void) pause(); } while ((--count > 0) || go_forever); kstat_close(kc); free(ksum_kstat); return (0); }