From bc4a957c46acd8f4b2f2ffe6b2f90512325924dd Mon Sep 17 00:00:00 2001 From: Jes Sorensen Date: Tue, 26 Oct 2010 10:39:25 +0200 Subject: Separate qemu_pidfile() into OS specific versions Signed-off-by: Jes Sorensen Signed-off-by: Blue Swirl --- os-win32.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'os-win32.c') diff --git a/os-win32.c b/os-win32.c index 3c6f50fa94..566d5e9853 100644 --- a/os-win32.c +++ b/os-win32.c @@ -240,3 +240,27 @@ void os_pidfile_error(void) { fprintf(stderr, "Could not acquire pid file: %s\n", strerror(errno)); } + +int qemu_create_pidfile(const char *filename) +{ + char buffer[128]; + int len; + HANDLE file; + OVERLAPPED overlap; + BOOL ret; + memset(&overlap, 0, sizeof(overlap)); + + file = CreateFile(filename, GENERIC_WRITE, FILE_SHARE_READ, NULL, + OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); + + if (file == INVALID_HANDLE_VALUE) { + return -1; + } + len = snprintf(buffer, sizeof(buffer), "%ld\n", (long)getpid()); + ret = WriteFileEx(file, (LPCVOID)buffer, (DWORD)len, + &overlap, NULL); + if (ret == 0) { + return -1; + } + return 0; +} -- cgit v1.2.1