Seek to end of large files correctly.
[nssm.git] / io.cpp
diff --git a/io.cpp b/io.cpp
index b6f9d37..ce455a3 100644 (file)
--- a/io.cpp
+++ b/io.cpp
@@ -174,9 +174,10 @@ int delete_createfile_parameter(HKEY key, TCHAR *prefix, TCHAR *suffix) {
 }\r
 \r
 HANDLE write_to_file(TCHAR *path, unsigned long sharing, SECURITY_ATTRIBUTES *attributes, unsigned long disposition, unsigned long flags) {\r
+  static LARGE_INTEGER offset = { 0 };\r
   HANDLE ret = CreateFile(path, FILE_WRITE_DATA, sharing, attributes, disposition, flags, 0);\r
-  if (ret!= INVALID_HANDLE_VALUE) {\r
-    if (SetFilePointer(ret, 0, 0, FILE_END) != INVALID_SET_FILE_POINTER) SetEndOfFile(ret);\r
+  if (ret != INVALID_HANDLE_VALUE) {\r
+    if (SetFilePointerEx(ret, offset, 0, FILE_END)) SetEndOfFile(ret);\r
     return ret;\r
   }\r
 \r