about summary refs log tree commit diff
path: root/src/libstddjb/fd_islocked.c
blob: bf9f9e8c195b4433e4eda3236a6b0ce3bd1344ab (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/* ISC license. */

#include <fcntl.h>

#include <skalibs/djbunix.h>

int fd_islocked (int fd)
{
  struct flock fl =
  {
    .l_type = F_RDLCK,
    .l_whence = SEEK_SET,
    .l_start = 0,
    .l_len = 0
  } ;
  return fcntl(fd, F_GETLK, &fl) < 0 ? -1 : fl.l_type != F_UNLCK ;
}