Я также искал что-то как этот, но ничто не обнаружилось, таким образом, я кодировал это легкое решение "softwarechannels":
https://github.com/alfem/softwarechannels
Это - очень простая система, чтобы позволить распространенный (никакой администратор) пользователи устанавливать пакеты из ограниченных каталогов.
Просто определите 'каналы' (группы пакетов) в простом текстовом файле и дайте свои пользовательские полномочия запустить softwarechannels.
Они будут только видеть пакеты в каналах, соответствующих их группам Unix.
, Когда вы читаете из сокета (или канал или другой асинхронный источник), можно выбрать то, что происходит, при отсутствии данных, сразу доступных. Любой у вас может быть чтение, ожидает, пока некоторые данные не прибывают (блокирующийся режим), или у вас может быть он возврат сразу с ошибкой (не блокирующий режим).
ошибка, которую это возвращает во втором случае, EAGAIN
.
Так ошибка EAGAIN
ничего действительно не говорит вам здесь. Это просто означает, что не было ничего для того recvmsg ()
для получения именно тогда.
Я получал эту ошибку, пытаясь прочитать из stdin
, когда не было stdin
, например. isTTY
было ложным.