У меня есть система реального времени, которая выполняет проверки, что пользователь входит в группу 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 будет работать все время