Mkstemp - создание временного файла блокировки для проверки неудачи группы uucp - PullRequest
0 голосов
/ 07 июля 2019

У меня есть система реального времени, которая выполняет проверки, что пользователь входит в группу uucp.

Большую часть времени это работает, но иногда mkstemp возвращает -1, в чем может быть причина?

Пользователь входит в группы adm, dialout и sudo (unix).

Тест выполняется путем создания файла временной блокировки:

char lock_dir[] = "/var/lock";
char lock_name[] = "tmpXXXXXX";
char *abs_lock_name;
abs_lock_name = calloc(strlen(lock_dir)
        + strlen(lock_name) + 2, sizeof(char));
if ( NULL == abs_lock_name )
{
    printf("check_group_uucp(): Insufficient memory");
    return 1;
}
strcat(abs_lock_name, lock_dir);
strcat(abs_lock_name, "/");
strcat(abs_lock_name, lock_name);
if ( -1 == mkstemp(abs_lock_name) )
{
    free(abs_lock_name);
    printf("mkstemp error");
    return 1;
}

I, за исключением того, что дляодин и тот же процесс, mkstemp будет работать все время

...