From b8ba0563f25d5ac40d80718d5d05503c27806765 Mon Sep 17 00:00:00 2001 From: Nguyễn Thái Ngọc Duy Date: Wed, 14 Apr 2010 06:59:24 +0200 Subject: win32: add link() --- win32/mingw.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'win32') diff --git a/win32/mingw.c b/win32/mingw.c index afd017e87..eccd37cc3 100644 --- a/win32/mingw.c +++ b/win32/mingw.c @@ -327,3 +327,24 @@ sighandler_t mingw_signal(int sig, sighandler_t handler) timer_fn = handler; return old; } + +int link(const char *oldpath, const char *newpath) +{ + typedef BOOL WINAPI (*T)(const char*, const char*, LPSECURITY_ATTRIBUTES); + static T create_hard_link = NULL; + if (!create_hard_link) { + create_hard_link = (T) GetProcAddress( + GetModuleHandle("kernel32.dll"), "CreateHardLinkA"); + if (!create_hard_link) + create_hard_link = (T)-1; + } + if (create_hard_link == (T)-1) { + errno = ENOSYS; + return -1; + } + if (!create_hard_link(newpath, oldpath, NULL)) { + errno = err_win_to_posix(GetLastError()); + return -1; + } + return 0; +} -- cgit v1.2.3-55-g6feb