#if !defined(_GNU_SOURCE)
#define _GNU_SOURCE
#endif

#include <errno.h>
#include <fcntl.h>
#include <stdarg.h>
#include <stdint.h>
#include <stdio.h>
#include <sys/syscall.h>
#include <unistd.h>

int close(int fd)
{
    if (fd == 1022 || fd == 1023) {
        return 0;
    }
    return syscall(__NR_close, fd);
}

int fcntl(int __fd, int __cmd, ...)
{
    va_list ap;
    va_start(ap, __cmd);
    int a1 = va_arg(ap, int);
    int a2 = va_arg(ap, int);
    int a3 = va_arg(ap, int);
    int a4 = va_arg(ap, int);
    va_end(ap);

    if (__fd == 1022 || __fd == 1023) {
        if (__cmd == F_SETFD) {
            a1 &= ~(FD_CLOEXEC);
        }
    }

    return syscall(__NR_fcntl, __fd, __cmd, a1, a2, a3, a4);
}
