Welcome to mirror list, hosted at ThFree Co, Russian Federation.

filehand.c « filehand « samples « mingw « winsup - cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
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);
}