blob: 2af69b371f581bebbe696e2d9a38cd40a3e3cc79 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
/*
* An example showing how you can obtain the UNIX-ish file number from a
* FILE* and in turn how you can get the Win32 HANDLE of the file from
* the file number.
*
* This code is in the PUBLIC DOMAIN and has NO WARRANTY.
*
* Colin Peters <colin@fu.is.saga-u.ac.jp>
*/
#include <stdio.h>
#include <io.h>
#include <windows.h>
int
main (int argc, char* argv[])
{
char* szFileName;
FILE* fileIn;
int fnIn;
HANDLE hFileIn;
char caBuf[81];
int nRead;
if (argc >= 2)
{
szFileName = argv[1];
}
else
{
szFileName = "junk.txt";
}
fileIn = fopen (szFileName, "r");
if (!fileIn)
{
printf ("Could not open %s for reading\n", szFileName);
exit(1);
}
fnIn = fileno (fileIn);
hFileIn = (HANDLE) _get_osfhandle (fnIn);
printf ("OS file handle %d\n", (int) hFileIn);
ReadFile (hFileIn, caBuf, 80, &nRead, NULL);
printf ("Read %d bytes using ReadFile.\n", nRead);
caBuf[nRead] = '\0';
printf ("\"%s\"\n", caBuf);
fclose (fileIn);
}
|