PostgreSQL Source Code
git master
Loading...
Searching...
No Matches
win32common.c
Go to the documentation of this file.
1
/*-------------------------------------------------------------------------
2
*
3
* win32common.c
4
* Common routines shared among the win32*.c ports.
5
*
6
* Portions Copyright (c) 1996-2026, PostgreSQL Global Development Group
7
* Portions Copyright (c) 1994, Regents of the University of California
8
*
9
*
10
* IDENTIFICATION
11
* src/port/win32common.c
12
*
13
*-------------------------------------------------------------------------
14
*/
15
16
#ifdef FRONTEND
17
#include "
postgres_fe.h
"
18
#else
19
#include "
postgres.h
"
20
#endif
21
22
/*
23
* pgwin32_get_file_type
24
*
25
* Convenience wrapper for GetFileType() with specific error handling for all the
26
* port implementations. Returns the file type associated with a HANDLE.
27
*
28
* On error, sets errno with FILE_TYPE_UNKNOWN as file type.
29
*/
30
DWORD
31
pgwin32_get_file_type
(
HANDLE
hFile
)
32
{
33
DWORD
fileType
=
FILE_TYPE_UNKNOWN
;
34
DWORD
lastError
;
35
36
errno
= 0;
37
38
/*
39
* When stdin, stdout, and stderr aren't associated with a stream the
40
* special value -2 is returned:
41
* https://learn.microsoft.com/en-us/cpp/c-runtime-library/reference/get-osfhandle
42
*/
43
if
(
hFile
==
INVALID_HANDLE_VALUE
||
hFile
== (
HANDLE
) -2)
44
{
45
errno
=
EINVAL
;
46
return
FILE_TYPE_UNKNOWN
;
47
}
48
49
fileType
=
GetFileType
(
hFile
);
50
lastError
=
GetLastError
();
51
52
/*
53
* Invoke GetLastError in order to distinguish between a "valid" return of
54
* FILE_TYPE_UNKNOWN and its return due to a calling error. In case of
55
* success, GetLastError() returns NO_ERROR.
56
*/
57
if
(
fileType
==
FILE_TYPE_UNKNOWN
&&
lastError
!=
NO_ERROR
)
58
{
59
_dosmaperr
(
lastError
);
60
return
FILE_TYPE_UNKNOWN
;
61
}
62
63
return
fileType
;
64
}
postgres.h
postgres_fe.h
fb
static int fb(int x)
Definition
preproc-init.c:92
_dosmaperr
void _dosmaperr(unsigned long)
Definition
win32error.c:177
pgwin32_get_file_type
DWORD pgwin32_get_file_type(HANDLE hFile)
Definition
win32common.c:31
src
port
win32common.c
Generated on Sun Feb 1 2026 12:13:17 for PostgreSQL Source Code by
1.9.8