Следующий код открывает сокет, устанавливает его как неблокирующий и отправляет по нему некоторые данные, используя UDP, а затем закрывает сокет:
int fd = socket(PF_INET, SOCK_DGRAM, 0);
int flags = fcntl(fd, F_GETFL, 0);
fcntl(fd, F_SETFL, flags | O_NONBLOCK);
sendto(fd, str.c_str(), str.length(), 0,
(struct sockaddr*)&addr, sizeof(addr));
close(fd);
Есть ли проблемы, связанные с закрытием дескриптора файла как только вызов sendto () завершится, учитывая, что он не блокируется?
Меня также интересуют какие-либо соображения безопасности потоков при одновременном выполнении вышеуказанного в нескольких потоках?