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


Пример 5.4


#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);

}




Начало  Назад  Вперед



Книжный магазин