wracct.c revision 7c478bd95313f5f23a4c958a745db2134aa03244
/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License, Version 1.0 only
* (the "License"). You may not use this file except in compliance
* with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at usr/src/OPENSOLARIS.LICENSE.
* If applicable, add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your own identifying
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*/
/*
* Copyright 2004 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
#pragma ident "%Z%%M% %I% %E% SMI"
/*
* wracct - write system accounting records
*/
#include <exacct.h>
#include <stdio.h>
#include <stdlib.h>
#include <libintl.h>
#include <strings.h>
#include <errno.h>
#define CMDNAME "wracct"
#define USAGE \
gettext("Usage: wracct -i id_list [-t partial | interval ] " \
"{process | task}\n")
#define OPTIONS_STRING "i:t:"
static void
usage(void)
{
exit(2);
}
static long
Atol(char *p)
{
long l;
char *q;
errno = 0;
l = strtol(p, &q, 10);
if (errno != 0 || q == p || l < 0 || *q != '\0') {
CMDNAME, p);
exit(2);
/*NOTREACHED*/
} else {
return (l);
}
}
int
{
int rec_flag = EW_PARTIAL;
char *id_sequence = NULL;
int c, r;
switch (c) {
case 't':
} else {
gettext("%s: wrong record type\n"),
CMDNAME);
usage();
}
break;
case 'i':
break;
case '?':
default:
usage();
break;
}
}
usage();
}
} else {
usage();
}
gettext("%s: interval process records not supported\n"),
CMDNAME);
exit(2);
}
if (id_sequence == NULL) {
gettext("%s: please use -i option to specify ids\n"),
CMDNAME);
exit(2);
}
r = errno;
"%s: operation failed on %s %d: %s\n",
exit(1);
}
}
return (0);
}