google-code-prettify

2009-11-18

様々な周波数のbeep音を出す2

ioctlによる方法だと特別な権限が必要になってしまう。特別な権限無しにbeep音をだしたかったので、PortAudioを使うことにした。

テスト用のファイルのうち"sin"とつくものを適当に改造すれば、任意の周波数のbeep音を出すことができる。

様々な周波数のbeep音を出す。

ioctl(fd, KIOCSOUND, val);で、様々な周波数のbeep音を出すことができる。要root権限。

#define CLOCK_TICK_RATE 1193180

int main(int argc, char *argv[])
{
int fd;
int ret;
int freq;
int val;

fd = open("/dev/console", O_WRONLY);
if (fd == -1) {
perror("open");
exit(1);
if (argc > 1) {
freq = atoi(argv[1]);
val = (int)(CLOCK_TICK_RATE/freq);
} else {
val = 0;
}

ret = ioctl(fd, KIOCSOUND, val);
if (ret < 0) {
perror("ioctl");
exit(1);
}
return 0;
}