Current Path : /usr/src/contrib/sendmail/libsm/ |
FreeBSD hs32.drive.ne.jp 9.1-RELEASE FreeBSD 9.1-RELEASE #1: Wed Jan 14 12:18:08 JST 2015 root@hs32.drive.ne.jp:/sys/amd64/compile/hs32 amd64 |
Current File : //usr/src/contrib/sendmail/libsm/t-memstat.c |
/* * Copyright (c) 2005-2007 Sendmail, Inc. and its suppliers. * All rights reserved. * * By using this file, you agree to the terms and conditions set * forth in the LICENSE file which can be found at the top level of * the sendmail distribution. */ #include <sm/gen.h> SM_IDSTR(id, "@(#)$Id: t-memstat.c,v 1.9 2007/03/14 21:41:09 ca Exp $") #include <sm/misc.h> /* ** Simple test program for memstat */ #include <stdlib.h> #include <unistd.h> #include <stdio.h> #include <strings.h> #include <string.h> extern char *optarg; extern int optind; void usage(prg) char *prg; { fprintf(stderr, "usage: %s [options]\n", prg); fprintf(stderr, "options:\n"); fprintf(stderr, "-l n loop n times\n"); fprintf(stderr, "-m n allocate n bytes per iteration\n"); fprintf(stderr, "-r name use name as resource to query\n"); fprintf(stderr, "-s n sleep n seconds per iteration\n"); } int main(argc, argv) int argc; char **argv; { int r, r2, i, l, slp, sz; long v; char *resource; l = 1; sz = slp = 0; resource = NULL; while ((r = getopt(argc, argv, "l:m:r:s:")) != -1) { switch ((char) r) { case 'l': l = strtol(optarg, NULL, 0); break; case 'm': sz = strtol(optarg, NULL, 0); break; case 'r': resource = strdup(optarg); break; case 's': slp = strtol(optarg, NULL, 0); break; default: usage(argv[0]); exit(1); } } r = sm_memstat_open(); r2 = -1; for (i = 0; i < l; i++) { char *mem; r2 = sm_memstat_get(resource, &v); if (slp > 0 && i + 1 < l && 0 == r) { printf("open=%d, memstat=%d, %s=%ld\n", r, r2, resource != NULL ? resource : "default-value", v); sleep(slp); if (sz > 0) { /* ** Just allocate some memory to test the ** values that are returned. ** Note: this is a memory leak, but that ** doesn't matter here. */ mem = malloc(sz); if (NULL == mem) printf("malloc(%d) failed\n", sz); } } } printf("open=%d, memstat=%d, %s=%ld\n", r, r2, resource != NULL ? resource : "default-value", v); r = sm_memstat_close(); return r; }