Ответ:
Иногда запросы от request.get () блокируются сервером, поэтому решение состоит в том, чтобы заставить сервер думать, что запрос поступает из веб-браузера. Пример:
headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36',}
page = requests.get("https://example.com", headers=headers)
Вы могли open()
Ваш канал O_RDONLY | O_NONBLOCK
, и если Вы хотите поток C, можно получить его с fdopen()
. Однако могла бы быть проблема с select()
- AFAIK, канал fd открыта для чтения, которое не имеет никакого устройства записи, всегда готовится к чтению, и read()
возвраты 0, таким образом, эти select()
стрелял бы неограниченно долго.
А топорный способ преодолеть это состоял бы в том, чтобы открыть канал O_RDWR
; то есть, имейте по крайней мере одно устройство записи (Ваша программа C++). Который решил бы Вашу проблему так или иначе.