я хочу использовать ioctl (), чтобы получить количество байтов, готовых к чтению
, как я это сделал:
mysocket=socket(....);
ioctl(mysocket, FIONBIO, &zero);
connect(.....);
ioctl( mysocket, FIONREAD, &numBytes );
read(mysocket, buffer, numBytes);
теперь все работает нормально в unixя должен перенести его в Linux, я продолжаю получать сообщение об ошибке
: 'FIONBIO' не был объявлен в этой области
Есть ли какой-то заголовокспецифичный для linux файл?или 'FIOBIO' вообще не работает в Linux?
У меня есть следующие заголовки:
#include <cstring>
#include <sys/socket.h>
#include <stropts.h>
#include <fcntl.h>
#include <stddef.h>
#include <sys/un.h>
#include <sys/types.h>
#include <stdlib.h>
#include <sys/ioctl.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>
#include <sys/select.h>
#include <fstream>
, и я удалил
#include <sys/filio.h>
, так как он выдавал ошибки, говоряsys / filio.h не найден