没有超级用户权限的蜂鸣器

时间:2015-06-15 13:16:27

标签: c linux

目前我正在使用以下代码在带有C的Linux中的PC扬声器上发出哔声。

int speaker_desc;

// Returns 0 on success
int register_speaker() {
    return (speaker_desc = open("/dev/console", O_RDONLY)) == -1;
}

void unregister_speaker() {
    close(speaker_desc);
}

void beep(int pulse_length, int duration) {
    int arg = (duration << 16) | (pulse_length & 0xffff);
    ioctl(speaker_desc, KDMKTONE, arg);
}

现在的问题是,如果程序没有在超级用户下运行,register_speaker()将失败。这有解决方法吗?因为我习惯于能够在Windows下使用用户权限操作PC扬声器,并且常规BEL - 字符也会在没有超级用户的情况下发出蜂鸣声。

0 个答案:

没有答案