- 论坛徽章:
- 0
|
This is the test program for my beeper driver for linux.
/*
* beep.c
*
* Copyright (C) 2007 (Meng Renzhou) Szembed Technology co,ltd.
*
* Beeper test program
*/
#include fcntl.h>
#include stdio.h>
#include stdlib.h>
#include unistd.h>
#include signal.h>
#include sys/ioctl.h>
#include sys/types.h>
#include linux/kd.h>
static int fd;
static void die(int x)
{
printf("signal %d detect, exit program...\n",x);
ioctl(fd, KIOCSOUND, 0);
close(fd);
exit(0);
}
int main(int argc, char *argv[])
{
int cnt,i;
if (argc == 2)
cnt = atoi(argv[1]);
else
cnt = 1;
if (geteuid() == 0)
fd = open("/dev/tty0", O_WRONLY);
else
fd = open("/dev/tty" , O_WRONLY);
if (fd 0)
fd = open("dev/console", O_WRONLY);
if (fd 0) {
perror("open");
exit(1);
}
signal(SIGKILL, die);
signal(SIGILL, die);
signal(SIGINT, die);
for(i=0; icnt; i++){
ioctl(fd, KIOCSOUND, 2000);
usleep(1000*500);
ioctl(fd, KIOCSOUND, 0);
usleep(1000*500);
}
close(fd);
exit(0);
}
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/3272/showart_410312.html |
|