1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
--- beep.c.orig 2005-07-23 13:37:01.000000000 -0400
+++ beep.c 2005-07-23 14:00:55.000000000 -0400
@@ -218,22 +218,20 @@
int i; /* loop counter */
/* try to snag the console */
- if((console_fd = open("/dev/console", O_WRONLY)) == -1) {
- fprintf(stderr, "Could not open /dev/console for writing.\n");
- printf("\a"); /* Output the only beep we can, in an effort to fall back on usefulness */
- perror("open");
- exit(1);
- }
+ console_fd = open("/dev/console", O_WRONLY);
/* Beep */
for (i = 0; i < parms.reps; i++) { /* start beep */
- if(ioctl(console_fd, KIOCSOUND, (int)(CLOCK_TICK_RATE/parms.freq)) < 0) {
- printf("\a"); /* Output the only beep we can, in an effort to fall back on usefulness */
- perror("ioctl");
+ if (console_fd >= 0) {
+ ioctl(console_fd, KIOCSOUND, (int)(CLOCK_TICK_RATE/parms.freq));
+ } else {
+ printf("\a"); /* Output the fall back for usefulness we don't have to be suid to work at all */
+ fflush(stdout);
}
/* Look ma, I'm not ansi C compatible! */
usleep(1000*parms.length); /* wait... */
- ioctl(console_fd, KIOCSOUND, 0); /* stop beep */
+ if (console_fd >= 0)
+ ioctl(console_fd, KIOCSOUND, 0); /* stop beep */
if(parms.end_delay || (i+1 < parms.reps))
usleep(1000*parms.delay); /* wait... */
} /* repeat. */
|