From bebec4ad42af0fc1ead5291769b19d12ffa0a514 Mon Sep 17 00:00:00 2001 From: Nguyễn Thái Ngọc Duy Date: Wed, 14 Apr 2010 07:04:11 +0200 Subject: win32: add fcntl() --- include/mingw.h | 2 +- win32/mingw.c | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/include/mingw.h b/include/mingw.h index 70b679674..d41580da7 100644 --- a/include/mingw.h +++ b/include/mingw.h @@ -252,7 +252,7 @@ IMPL(getegid,int,1,void); IMPL(geteuid,int,1,void); NOIMPL(getsid,pid_t pid UNUSED_PARAM); IMPL(getuid,int,1,void); -NOIMPL(fcntl,int fd UNUSED_PARAM, int cmd UNUSED_PARAM, ...); +int fcntl(int fd, int cmd, ...); #define fork() -1 IMPL(fsync,int,0,int fd UNUSED_PARAM); NOIMPL(kill,pid_t pid UNUSED_PARAM, int sig UNUSED_PARAM); diff --git a/win32/mingw.c b/win32/mingw.c index bd855dc7a..adf2d161e 100644 --- a/win32/mingw.c +++ b/win32/mingw.c @@ -387,3 +387,17 @@ int mingw_mkdir(const char *path, int mode UNUSED_PARAM) { return mkdir(path); } + +int fcntl(int fd UNUSED_PARAM, int cmd, ...) +{ + /* + * F_GETFL needs to be dealt at higher level + * Usually it does not matter if the call is + * fcntl(fd, F_SETFL, fcntl(fd, F_GETFD) | something) + * because F_SETFL is not supported + */ + if (cmd == F_GETFD || cmd == F_SETFD || cmd == F_GETFL) + return 0; + errno = ENOSYS; + return -1; +} -- cgit v1.2.3-55-g6feb