//#include #include #include void pgwin32_open(const char *fileName, int fileFlags,...) { HANDLE h; SECURITY_ATTRIBUTES sa; sa.nLength = sizeof(sa); sa.bInheritHandle = TRUE; sa.lpSecurityDescriptor = NULL; h = CreateFile(fileName, GENERIC_READ, /* These flags allow concurrent rename/unlink */ (FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE), &sa, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL , NULL); if (h == INVALID_HANDLE_VALUE) { printf("File could not be opened. Error %d\n", GetLastError()); exit(1); } /* CloseHandle(h); */ if (_unlink(fileName) != 0) { printf("File could not be deleted. Error %d\n", GetLastError()); exit(1); } } int main(void) { pgwin32_open("c:/temp/amit/file", 0 /* O_RDONLY | PG_BINARY */); }