|
|
1.1 root 1: #include <stdio.h>
2: #include <errno.h>
3: #include <sys/pioctl.h>
4: #include <sys/param.h>
5: #include <sys/types.h>
6: #include <sys/vtimes.h>
7: #include <sys/proc.h>
8:
9: extern int errno;
10:
11: char *progname, procname[16]; struct proc p; int nerrors;
12:
13: main(argc, argv)
14: char **argv;
15: {
16: int fd, pri = NZERO-1, dpri;
17: progname = *argv;
18: if (argv[1]) {
19: if (argv[1][0] == '-')
20: pri = atoi(*++argv+1);
21: } else
22: error();
23: while (*++argv) {
24: sprintf(procname, "/proc/%05d", atoi(*argv));
25: if ((fd = open(procname, 0)) < 0 ||
26: ioctl(fd, PIOCGETPR, &p) < 0 ||
27: (dpri = pri + NZERO - p.p_nice,
28: ioctl(fd, PIOCNICE, &dpri)) < 0)
29: error();
30: close(fd);
31: }
32: exit(nerrors != 0);
33: }
34:
35: error()
36: {
37: switch (errno) {
38: case 0:
39: fprintf(stderr, "usage: %s [ -pri ] pid ...\n", progname); break;
40: case EACCES:
41: case EPERM:
42: fprintf(stderr, "%s: no permission\n", procname); break;
43: case ENOENT:
44: fprintf(stderr, "%s: no such process\n", procname); break;
45: default:
46: fprintf(stderr, "%s: unexpected error %d\n", procname, errno);
47: }
48: ++nerrors;
49: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.