Всем привет.
В си я новичек. Не пинайте если глупый вопрос.
Вызываю в потоке sleep(10) (linux, pthreads). Вместо того, чтобы спать 10 сек. он возвращает 10. В мане написано, что это из-за того что поступил сигнал. Собственно, вопрос, как заставить sleep этот сигнал проигнорировать и продолжать исполнять свой долг, то есть спать.
Заранее спасибо
если причиной всему и впрямь являются сигнал(ы) то можно блокировать участок кода от сигнала. В нити это делает функция pthread_sigmask() Если программа однопотоковая, т.е. без нитей, то такую же функцию выполняет sigprocmask(). В man все подробненько есть.
>если причиной всему и впрямь являются сигнал(ы) то можно блокировать участок кода
>от сигнала. В нити это делает функция pthread_sigmask() Если программа однопотоковая,
>т.е. без нитей, то такую же функцию выполняет sigprocmask(). В man
>все подробненько есть.Или использовать usleep
Болтшое спасибо за ответы. pthread_sigmask помог. usleep так же реагирует на сигналы как и sleep
>Собственно, вопрос, как заставить sleep этот сигнал проигнорироватьА что за сигнал-то хоть? Игнорировать их можно только когда точно знаешь что делаешь...