464dbf00c18901a0d7640b147b1b6ab91bfe7712
[musl] / src / fcntl / fcntl.c
1 #include <fcntl.h>
2 #include <unistd.h>
3 #include <stdarg.h>
4 #include "syscall.h"
5 #include "libc.h"
6
7 int fcntl(int fd, int cmd, ...)
8 {
9         int r;
10         long arg;
11         va_list ap;
12         va_start(ap, cmd);
13         arg = va_arg(ap, long);
14         va_end(ap);
15         if (cmd == F_SETFL) arg |= O_LARGEFILE;
16         if (cmd == F_SETLKW) CANCELPT_BEGIN;
17         r = __syscall_fcntl(fd, cmd, arg);
18         if (cmd == F_SETLKW) CANCELPT_END;
19         return r;
20 }
21
22 LFS64(fcntl);