powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / linux. именованные семафоры
4 сообщений из 4, страница 1 из 1
linux. именованные семафоры
    #33785545
ChameLe0n
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Потребовалось синхронизировать 2 процесса. Решил использовать именнованные семафоры. Пишу:
sem_t *s = sem_open("/tmp/sem",O_RDWR|O_CREAT,S_IRUSR|S_IWUSR,1);
вызов этой функции фозвращает ошибку "файл не найден". Не пойму почему - O_CREAT указан. Права на создание файлов есть.
...
Рейтинг: 0 / 0
linux. именованные семафоры
    #33785582
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
попробуйте в параметре mode указать 0644
...
Рейтинг: 0 / 0
linux. именованные семафоры
    #33785596
ChameLe0n
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
int mode = S_IRUSR | S_IWUSR |  S_IXUSR | S_IRGRP | S_IWGRP |  S_IROTH | S_IWOTH;
semaphore = sem_open("/tmp/sem",O_CREAT|O_RDWR,mode,state);	
if (semaphore==SEM_FAILED)
	perror("/tmp/sem");
При запуске пишет :
/tmp/sem: No such file or directory
Ошибка сегментирования
На "Ошибка сегментирования" не обращаем внимание так как идет вызов sem_wait на неоткрытом семафоре.


Немного меняем программу... /tmp/sem заменяем на просто "sem". Запускаем программу
Пытаюсь блокировать:
Блокировал!
Чета делаю 0
Чета делаю 1
...
Т.е. программа заработал как надо.. В чем я не прав?
...
Рейтинг: 0 / 0
linux. именованные семафоры
    #33785601
ChameLe0n
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Еще интересности:
lsof | grep program вывел соотвественно список открытых файлов, там вижу
авторDEL REG 0,13 14578 /dev/shm/sem.sem
меняю имя семафора на "mysem" запускаем смотрим:
авторDEL REG 0,13 14578 /dev/shm/sem.mysem
Странно.... Судя по букварю "Unix. Взаимодействие процессов" в параметре имя передается полный путь файла. Резонно могу предположить что чтото изменилось и теперь нужно указывать не полный путь а просто имя. А дальше ОС сама разрулит где его хранить.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / linux. именованные семафоры
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]