]> diplodocus.org Git - nmh/blob - sbr/lock_file.h
mhlsbr.c: Don't strchr(3) non-string NUL-less buffer.
[nmh] / sbr / lock_file.h
1 /* lock_file.h -- lock and unlock files.
2 *
3 * This code is Copyright (c) 2017, by the authors of nmh. See the
4 * COPYRIGHT file in the root directory of the nmh distribution for
5 * complete copyright information.
6 */
7
8 /*
9 * Lock open/close routines.
10 *
11 * The lk[f]opendata() functions are designed to open "data" files (anything
12 * not a mail spool file) using the locking mechanism configured for data
13 * files. The lk[f]openspool() functions are for opening the mail spool
14 * file, which will use the locking algorithm configured for the mail
15 * spool.
16 *
17 * Files opened for reading are locked with a read lock (if possible by
18 * the underlying lock mechanism), files opened for writing are locked
19 * using an exclusive lock. The int * argument is used to indicate failure
20 * to acquire a lock.
21 */
22 int lkopendata(const char *file, int access, mode_t mode, int *failed_to_lock);
23 int lkopenspool(const char *file, int access, mode_t mode, int *failed_to_lock);
24 FILE *lkfopendata(const char *file, const char *mode, int *failed_to_lock);
25 FILE *lkfopenspool(const char *file, const char *mode);
26 int lkclosedata(int fd, const char *name);
27 int lkfclosedata(FILE *f, const char *name);
28 int lkclosespool(int fd, const char *name);
29 int lkfclosespool(FILE *f, const char *name);