00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #include "defs.h"
00022
00023
00024 #define USAGE "usage: aupnice [-num] command\n"
00025
00026 int main(int argc, char *argv[])
00027 {
00028 int incr, cmdarg;
00029 char *cmdname, *cmdpath;
00030
00031 if (argc < 2) {
00032 fprintf(stderr, USAGE);
00033 exit(EXIT_FAILURE);
00034 }
00035 if (argv[1][0] == '-') {
00036 incr = atoi(&argv[1][1]);
00037 cmdarg = 2;
00038 }
00039 else {
00040 incr = 10;
00041 cmdarg = 1;
00042 }
00043 if (cmdarg >= argc) {
00044 fprintf(stderr, USAGE);
00045 exit(EXIT_FAILURE);
00046 }
00047 (void)nice(incr);
00048 cmdname = strchr(argv[cmdarg], '/');
00049 if (cmdname == NULL)
00050 cmdname = argv[cmdarg];
00051 else
00052 cmdname++;
00053 cmdpath = argv[cmdarg];
00054 argv[cmdarg] = cmdname;
00055 execvp(cmdpath, &argv[cmdarg]);
00056 EC_FAIL
00057
00058 EC_CLEANUP_BGN
00059 exit(EXIT_FAILURE);
00060 EC_CLEANUP_END
00061 }
00062