/* * Copyright (c) 2021, Peter Elliott * Copyright (c) 2022, Idan Horowitz * * SPDX-License-Identifier: BSD-2-Clause */ #include #include #include #include extern "C" { int flock(int fd, int operation) { struct flock lock { short(operation & 0b11), SEEK_SET, 0, 0, 0 }; return fcntl(fd, (operation & LOCK_NB) ? F_SETLK : F_SETLKW, &lock); } }