Дескриптор - это номер (код, описатель) потока, с которым работают функции чтения/записи и закрытия. Попроще:
int d=open(...);
read(d,...);
write(d,...);
close(d);
Вот "int d" и есть дескриптор.
В случае с сетью, это номер сокета, возвращаемый функцией socket.
Ошибка с сообщением "Bad file descriptor" может появляться в случаях, когда функции read,open и close пытаются разботать с уже закрытым потоком или еще не открытым потоком. Кроме того, есть еще N функций, с помощью которых настраивается поток. Они обычно применяются для сетевых соединений, например, чтобы чтение из сокета не блокировало выполнение программы (так называемые "non-blocking IO on sockets").
|