| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Программирование под Unix/Linux > semget: Invalid argument |
| Автор: MastEdm 20.11.2008, 12:56 | ||
| Добрый день. При таком вызове:
получаю "semget: Invalid argument". В чем тут может быть проблема и каким образом можно посмотреть число доступных на данный момент семафоров в системе (через терминал и через прогу)? Спасибо. |
| Автор: GrayCardinal 20.11.2008, 13:15 |
| MastEdm, Чему равен key ? С другим key пробовали ? |
| Автор: MastEdm 20.11.2008, 13:18 | ||
Ключ генерится так:
При падении, key был равен 16802421 |
| Автор: MAKCim 20.11.2008, 13:28 |
| MastEdm, попробуй через ftok() сгенерировать ключ |
| Автор: MastEdm 20.11.2008, 13:33 |
| Да, он через ftok генерится, я просто не туда посмотрел. Это вообще либа, причем не моя. Разобрался. Изначально ключ генерился по файлу. Пересобрал либу, чтобы генерилось по ftok. Все работает. Спасибо. |
| Автор: MastEdm 2.12.2008, 01:50 | ||
Рано радовался. Падает даже при использовании ftok
Тот же вопрос: в чем бага? |
| Автор: MAKCim 2.12.2008, 11:26 | ||
|
| Автор: MastEdm 2.12.2008, 13:48 | ||
| Читать маны я умею, но все равно спасибо за ответ. Немного пожить позволило использование IPC_PRIVATE вместо ключа в semget, правда потом все равно получил
Ну а дальше с помощью ipcs -s и ipcrm -s кильнул лишние и все заработало. Возник следующий вопрос: как эффективно чистить семафоры? |
| Автор: MAKCim 2.12.2008, 14:41 |
а semctl с IPC_RMID не помогает? я бы не советовал использовать SVR5 IPC (разве что только речь не идет о сверх переносимости) |