Нет, вы не можете с уверенностью предположить, что, если это специально не задокументировано. Причина в том, что использование nanosleep
является подробностью реализации sleep
. Если бы две функции были реорганизованы для использования некоторой общей внутренней функции в glib c, которая была безопасна для asyn c -signal, но реализация nanosleep
изменилась так, что это не так, ваш код будет поврежден.
Вы не можете полагаться на детали реализации функций в glib c, поскольку они могут изменяться и изменяются в разных версиях. Примечательно, что все версии Adobe Fla sh не работали на некоторых машинах, потому что glib c изменил memcpy
для копирования вместо up, что разрешено стандартом и документацией.
Кроме того, просто потому, что glib c делает вещи определенным образом, это не значит, что другие Linux libcs делают (или другие не Linux libcs), и ваш код там не будет работать.