blob: 48db8bc04d4c1573fb97d4c05eeed38f673b706c [file] [log] [blame]
#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);
}