2015-04-26 5 views
0

Я пытаюсь создать общую функцию для создания семафора в C, но я не уверен в значении третьего аргумента, который называется mode_t mode. Я читаю, что чтение/запись - это стандартные разрешения, и я хотел бы пойти с этим. Какую ценность мне нужно использовать?Инициализация семафора в C

Вот моя реализация:

sem_t * semaphore_create(char * name, int value){ 

    sem_t *sem; 


    sem = sem_open(name, O_CREAT , **what to put here ?** , value); 

    if(sem == SEM_FAILED){ 
     perror("Error semaphore_create!"); 
     exit(-1); 
    } 

    return sem; 

} 

ответ

1
sem = sem_open(name, O_CREAT , S_IRUSR | S_IWUSR, value); 

Даст права чтения и записи.

Вы можете увидеть open(2) руководство для других вариантов режима:

The following symbolic constants are provided for mode: 

       S_IRWXU 00700 user (file owner) has read, write and execute 
         permission 

       S_IRUSR 00400 user has read permission 

       S_IWUSR 00200 user has write permission 

       S_IXUSR 00100 user has execute permission 

       S_IRWXG 00070 group has read, write and execute permission 

       S_IRGRP 00040 group has read permission 

       S_IWGRP 00020 group has write permission 

       S_IXGRP 00010 group has execute permission 

       S_IRWXO 00007 others have read, write and execute permission 

       S_IROTH 00004 others have read permission 

       S_IWOTH 00002 others have write permission 

       S_IXOTH 00001 others have execute permission 
Смежные вопросы