On Sat, Jun 16, 2007 at 07:18:17PM +0200, Michael Hanselmann wrote:
> if (stat("/sys/module/usbhid/parameters/pb_fnmode", &st) == 0) {
> […]
> fd = open(path, O_RDONLY);
I just noticed the race condition there. A better way:
fd = open("/sys/module/usbhid/parameters/pb_fnmode", O_RDWR);
if (fd < 0) {
fd = open("/sys/module/hid/parameters/pb_fnmode", O_RDWR);
if (fd < 0) {
/* Not available */
}
}
/* Use fd */
Greets,
Michael
--
http://hansmi.ch/