Кто-нить может подскажет,в чём здесь трудность.
Пытаюсь провернуть такую операцию:
...
#define BIO_MAX6902_DEV_NAME "/dev/extrtc"
...
if ((gMax6902RTCfd = open(BIO_MAX6902_DEV_NAME,O_RDWR)) < 0) return -1;
..
На что получаю поджопник,что файл не открыт , т.е. возвращается -1.
Заранее спасибо.
Решено: open() возвращает ошибку (open)
Модератор: Модераторы разделов
-
whirlwind
- Сообщения: 67
Re: Решено: open() возвращает ошибку
могу посоветовать посмотреть, что вам perror() напишет
Добро всегда побеждает зло. Мы победили, значит мы - добро.
-
RasenHerz
- Сообщения: 1341
- ОС: Arch Linux amd64
Re: Решено: open() возвращает ошибку
с правами доступа к устройству все в порядке?
-
rapa
- Сообщения: 29
- ОС: Linux Fedora 8
Re: Решено: open() возвращает ошибку
perror() ещё не пробовал,попробую,а с правами вроде всё в порядке.Права доступа я проверил сразу-же.
К тому-же когда я изменил:
#define BIO_MAX6902_DEV_NAME "/dev/extrtc"
на
#define BIO_MAX6902_DEV_NAME "/dev/rtc5"
то все заработало,хотя и на /dev/extrtc и на /dev/rtc5 права доступа одинаковые: "crw-r--r--".Я даже менял O_RDWR на O_RDONLY и не помогло.
В принципе проблемма решена вот так:
#define BIO_MAX6902_DEV_NAME "/dev/rtc5"
но хотелось бы понять в чём проблемма.
К тому-же когда я изменил:
#define BIO_MAX6902_DEV_NAME "/dev/extrtc"
на
#define BIO_MAX6902_DEV_NAME "/dev/rtc5"
то все заработало,хотя и на /dev/extrtc и на /dev/rtc5 права доступа одинаковые: "crw-r--r--".Я даже менял O_RDWR на O_RDONLY и не помогло.
В принципе проблемма решена вот так:
#define BIO_MAX6902_DEV_NAME "/dev/rtc5"
но хотелось бы понять в чём проблемма.
-
nesk
- Сообщения: 2268
- Статус: Линукссаксовец
- ОС: MS Windows XP Home SP3
Re: Решено: open() возвращает ошибку
так смотрите perror(), он Вам скажет в чем проблема!
Внимание: У меня под рукой нет машины с Linux. Я не использую эту ОС. Ответы я даю либо по памяти, либо мне помогает гугл. Тщательно читайте маны по тем командам и конфигурационным файлам, которые я упоминаю.
0xDEFEC8ED
0xDEFEC8ED
-
rapa
- Сообщения: 29
- ОС: Linux Fedora 8
Re: Решено: open() возвращает ошибку
Ещё не проверял,но я практически понял,где я лоханулся.В драйвере я определил Major(номер) - 211,а когда определял файл девайса
mknod /dev/extrtc c 208 0,
то определил его с номером 208.
Когда поменял
mknod /dev/extrtc c 208 0
на
mknod /dev/rtc5 c 211 0,
то чисто случайно угадал и вот теперь догнал почему не работало.
mknod /dev/extrtc c 208 0,
то определил его с номером 208.
Когда поменял
mknod /dev/extrtc c 208 0
на
mknod /dev/rtc5 c 211 0,
то чисто случайно угадал и вот теперь догнал почему не работало.