URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 5255
[ Назад ]

Исходное сообщение
"POSIX IPC"

Отправлено karak , 21-Мрт-06 09:03 
Есть проблема с созданием семафора не под root.
Подскажите плиз! Как заставить это работать?
В общем пример (из книги Уильяма Стивенса UNIX взаимодействие процессов)
мне не удалось запустить не из под root.

#include <...>

#define FILE_MODE (S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH)

int main(int argc, char *argv[])
{
int c, flags;
sem_t *sem;
unsigned int value;

flags |= O_RDWR|O_CREAT;
value = 1;
while((c = getopt(argc, argv,"ei:")) != -1){
   switch(c){
     case 'e':
       flags |= O_EXCL;
     break;
     case 'i':
       value = atoi(optarg);
     break;
   }
}

if(optind != argc - 1){
  printf("usage: semcreate [-e] [-i initval] <name>");
  return -1;
}

sem = sem_open(argv[optind], flags, FILE_MODE, value);
if(sem == SEM_FAILED) {
  printf("sem_open: Error %s\n", strerror(errno));
  return -2;
}

sem_close(sem);

return 0;
}


Содержание

Сообщения в этом обсуждении
"POSIX IPC"
Отправлено Ф , 21-Мрт-06 09:37 
А что за переменная optind ?
Где она объявляется?

"POSIX IPC"
Отправлено chip , 21-Мрт-06 14:00 
>А что за переменная optind ?
>Где она объявляется?

man 3 getopt /optind


"POSIX IPC"
Отправлено karak , 22-Мрт-06 22:57 
>>А что за переменная optind ?
>>Где она объявляется?
>
>man 3 getopt /optind

Если кому интересно, то проблема решилась после установки rwx для всех на /dev/shm.