|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
14.01.2012, 02:58 | #1 |
Новичок
Джуниор
Регистрация: 13.01.2012
Сообщений: 2
|
lirc и O_NONBLOCK
Всем привет. Столкнулся с такой проблемой.
Пытаюсь написать небольшое приложение для lirc. Код HTML:
#include <errno.h> #include <unistd.h> #include <stdarg.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <lirc/lirc_client.h> #include <fcntl.h> #include <assert.h> int sock, i=1; void setSockNonblock(int sockfd) { int arg = fcntl(sockfd, F_GETFL, NULL); arg |= O_NONBLOCK; fcntl(sockfd, F_SETFL, arg); // ---> Segfault Here } int main(int argc, char *argv[]) { struct lirc_config *config; char argf[]="irexec"; char *progname=argf, *code, *c; int ret, flags; sock= lirc_init(argf,1); lirc_readconfig(NULL,&config,NULL); setSockNonblock(sock); while(lirc_nextcode(&code)==0) { ret=lirc_code2char(config,code,&c); if (c) printf("Execing command \"%s\" :: %d\n",c, i); else printf(":: %d\n", i); i++; } lirc_freeconfig(config); lirc_deinit(); return 0; } Код HTML:
./lirc Ошибка сегментирования ./gdb lirc (gdb) run segfault (gdb) backtrace #0 0x00007ffff70ad7af in __rawmemchr_sse2 () from /lib/libc.so.6 #1 0x00007ffff7099170 in _IO_str_init_static_internal () from /lib/libc.so.6 #2 0x00007ffff7089580 in __isoc99_vsscanf () from /lib/libc.so.6 #3 0x00007ffff7089517 in __isoc99_sscanf () from /lib/libc.so.6 #4 0x00007ffff7bd718b in ?? () from /usr/lib/liblirc_client.so.0 #5 0x00007ffff7bd8e77 in lirc_code2char () from /usr/lib/liblirc_client.so.0 #6 0x0000000000400926 in main (argc=1, argv=0x7fffffffe668) at main.cc:35 Может быть кто-то сталкивался с подобным ? Заранее спасибо за помощь P.S. Это все пишется под linux |