Программирование в стандарте POSIX


         

если файл уже существует,


#include
#include
#include
#include
#define LOCK_FILE "my_lock"
/* Функция пытается создать файл-замок */
/* Результат равен 0 в случае успеха, */
/* 1, если файл уже существует, */
/* -1 в случае прочих ошибок */
static int gate (const char *lock_name) {
int fd;
if ((fd = open (lock_name, O_WRONLY | O_CREAT |
O_EXCL, (mode_t) 0)) < 0) {
if (errno == EEXIST) {
return (1);
}
return (-1);
}
return (close (fd));
}
int main (void) {
int res;
if ((res = gate (LOCK_FILE)) > 0) {
perror ("Ошибка при создании файла-замка "
LOCK_FILE);
} else if (res == 1) {
fprintf (stderr, "Файл-замок " LOCK_FILE "
уже существует\n");
}
return (res);
}

Содержание  Назад  Вперед