Есть проблема с созданием семафора не под 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;
}
А что за переменная optind ?
Где она объявляется?
>А что за переменная optind ?
>Где она объявляется?man 3 getopt /optind
>>А что за переменная optind ?
>>Где она объявляется?
>
>man 3 getopt /optindЕсли кому интересно, то проблема решилась после установки rwx для всех на /dev/shm.