Есть ли способ сделать тайм-аут произвольной функции, в C? - PullRequest
2 голосов
/ 29 января 2010

У меня есть функция, которая запускается в C. Я бы хотел, чтобы тайм-аут или, по крайней мере, был неблокирующим. Есть ли способ сделать это без запуска в качестве потока?

Ответы [ 2 ]

3 голосов
/ 29 января 2010

select() (или один из ее эквивалентов для конкретной платформы) - это то, что следует использовать, если вы не знаете, что есть входные данные из блокирующего файла или сокета, и хотите продолжить, если их нет.

1 голос
/ 29 января 2010

Вы можете сделать его неблокирующим, просто не делая блокирующих вызовов внутри вашей функции. Если вы хотите, чтобы время ожидания истекло, просто оберните неблокирующие вызовы, которые вы делаете, в небольшой код, который получает и проверяет время, прошедшее с момента вызова функции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...