Запрос на избранном системном вызове

После некоторых испытаний я обнаружил, что это проблема с URL-адресом изображения. URL изображения содержит https. Когда я использую URL изображения с http вместо https, он работает нормально, и спасибо ребятам за ваши усилия и предложения.

6
задан Prabhu. S 13 March 2009 в 19:59
поделиться

3 ответа

Выгода - то, что fd_set не является действительно "набором" в способе, которым Вы думаете. Закулисная деталь - то, что реализация fd_set является просто целым числом, которое используется в качестве битового поля. Другими словами, выполнение

fd_set foo;
FD_CLEAR(&foo);
FD_SET(&foo, 3);

Нечто наборов к десятичному значению 8 - это устанавливает бит fourth-least-singificant на 1 (помните, что 0 допустимый дескриптор).

FD_SET(&foo, 3);

эквивалентно

foo |= (1 << 3);

Таким образом для выбора, чтобы работать правильно, это должно знать, какие биты fd_set являются битами, о которых Вы заботитесь. Иначе не было бы никакого пути к нему для сообщения нулевого бита, который находится "в" наборе, но наборе ко лжи от нулевого бита, который является "не в" наборе.

В Вашем примере, fd_set с 4, 8, и 9 наборов и n = 10 интерпретируется как "Набор с 10 записями (fds 0-9). Записи 4, 8, и 9 верны (контролируйте их). Записи 1,2,3,5,6,7 являются ложью (не контролируйте их). Любое значение fd, больше, чем 9, находится просто не в период набора".

8
ответ дан 16 December 2019 в 21:46
поделиться

Выбор контролирует те FDs, которые Вы позволили использовать макрос FD_SET. Если Вы не включаете FD для контроля, выберите (), не контролирует никого.

"nfds" определенно избыточен, но это - часть выбора () интерфейс, таким образом, необходимо использовать его :)

Так или иначе, если Вы имеете {4, 8, 9} в наборе, Вы устанавливаете nfds на 10 (как Вы упомянули), и выберите (), будет только контролировать три FDs 4, 8 и 9.

0
ответ дан 16 December 2019 в 21:46
поделиться

Это - вероятно, оптимизация так, чтобы select не должен идти через целое fd_set узнать, какие дескрипторы на самом деле используются. Без того параметра, select должен был бы всегда смотреть на полный набор для нахождения, какие дескрипторы на самом деле используются в вызове с параметром, часть той работы может быть опущена.

0
ответ дан 16 December 2019 в 21:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: