summaryrefslogtreecommitdiff
path: root/src/lock.c
diff options
context:
space:
mode:
authorJannis Hoffmann <jannis@fehcom.de>2024-07-09 13:58:20 +0200
committerJannis Hoffmann <jannis@fehcom.de>2024-07-09 13:58:20 +0200
commit249866e3d1e11dc72eaa1305f4bb479ded92ef38 (patch)
tree7118c5f58e29fe61c100e4d067bb90ba8d52589e /src/lock.c
parent96cf8dffe4f7b0b910f790066ae622dc429eb522 (diff)
reorganized file structure
Moved c files into src/. Corrected VERSION file. Removed BUILD and FILES.
Diffstat (limited to 'src/lock.c')
-rw-r--r--src/lock.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/lock.c b/src/lock.c
new file mode 100644
index 0000000..4ac6b40
--- /dev/null
+++ b/src/lock.c
@@ -0,0 +1,22 @@
+#include <unistd.h>
+#include <sys/types.h>
+#include <sys/file.h>
+#include <fcntl.h>
+#include "lock.h"
+
+/**
+ @file lock.c
+ @author djb
+ @source qmail
+ @brief locking of resources
+*/
+
+#ifdef HASFLOCK
+int lock_ex(int fd) { return flock(fd,LOCK_EX); }
+int lock_exnb(int fd) { return flock(fd,LOCK_EX | LOCK_NB); }
+int lock_un(int fd) { return flock(fd,LOCK_UN); }
+#else
+int lock_ex(int fd) { return lockf(fd,1,0); }
+int lock_exnb(int fd) { return lockf(fd,2,0); }
+int lock_un(int fd) { return lockf(fd,0,0); }
+#endif