У меня проблема с семафорами POSIX под Cygwin, я пробовал следующее:
$ semtool c 1
Attempting to create new semaphore set with 1 members
Bad system call
$
Приведенный выше semtool пытается создать (через semget, semctl и т. Д. Системные вызовы) новый семафор. Однако это не работает: Плохой системный вызов.
Также минималистическая тестовая программа C, использующая semget (), не может выдать то же сообщение: Bad системный вызов.
Я выполнил поиск в Google: установил cygserver, определил переменную окружения CYGWIN для «server», но ничего не помогло. Моя версия Cygwin довольно новая:
$ cygcheck -c | grep cygwin
base-cygwin 3.0-1 OK
cygwin 1.7.9-1 OK
cygwin-doc 1.7-1 OK
cygwin-x-doc 1.1.1-1 OK
$
Какие-нибудь мысли / намеки на то, что еще может отсутствовать?
попробовал сейчас с дополнительным экспортом:
$ export CYGWIN=server
служба запущена
$ net start | grep -i cyg
CYGWIN cygserver
$
больше нет ошибки:
$ semtool c 1
Attempting to create new semaphore set with 1 members
$
похоже сейчас работает!