URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 7404
[ Назад ]

Исходное сообщение
"асинхронный ввод/вывод "

Отправлено gobsy , 06-Июн-08 08:49 
Здравствуйте все!
Занимаюсь разработкой ПО на Си под FreeBSD 5.3
Вчера, начал разбираться с функциями асинхронного ввода/вывода
  написал небольшой пример
   :
  int main(void)
    {
    int fd;
    fd = open(file,O_RDWR);
    struct aiocb cb;
          
    cb.aio_fildes = fd;
    cb.aio_offset = 0;
    cb.aio_buf = "qqqq";
    cb.aio_nbytes = 4;
    cb.aio_sigevent.sigev_notify = SIGEV_NONE;
      if (aio_read (&cb) < 0)
      {
       perror ("aio_read");
       return (EXIT_FAILURE);
      }  
     exit(0);
    }
  
    Программка компилируется, собиратся, но при запуске вылетает с созданием корки. Ругается на bad system call...
Вобщем я не понимаю в чем дело? немогли бы вы мне разьяснить ситуацию.

Содержание

Сообщения в этом обсуждении
"асинхронный ввод/вывод "
Отправлено artur , 06-Июн-08 09:50 
>созданием корки. Ругается на bad system call...

протестил, блин действительно валится из-за SIGSYS ))

kernel: options VFS_AIO
или
kldload aio
(по ходу огребаем огромный варнинг)

и все работает. ("qqqq" это ведь чисто для примера ?)


"асинхронный ввод/вывод "
Отправлено gobsy , 06-Июн-08 10:31 
>и все работает. ("qqqq" это ведь чисто для примера ?)

Спасибо большое за совет, с kldload aio прокатило!  
А "qqqq" это просто пример, да там нужно вызвать aio_write(), я ж собственно записать хотел, а не считать!