comparison netinstall/nio-file.cc @ 448:3078fd1074e8 r21-2-39

Import from CVS: tag r21-2-39
author cvs
date Mon, 13 Aug 2007 11:38:25 +0200
parents
children
comparison
equal deleted inserted replaced
447:4fc5f13f3bd3 448:3078fd1074e8
1 /*
2 * Copyright (c) 2000, Red Hat, Inc.
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * A copy of the GNU General Public License can be found at
10 * http://www.gnu.org/
11 *
12 * Written by DJ Delorie <dj@cygnus.com>
13 *
14 */
15
16 /* The purpose of this file is to manage access to files stored on the
17 local disk (i.e. "downloading" setup.ini). Called from netio.cc */
18
19 #include <stdio.h>
20 #include <sys/types.h>
21 #include <sys/stat.h>
22 #include <errno.h>
23 #include "win32.h"
24 #include "netio.h"
25 #include "nio-file.h"
26 #include "resource.h"
27 #include "msg.h"
28
29 NetIO_File::NetIO_File (char *Purl)
30 : NetIO (Purl)
31 {
32 struct stat s;
33 fd = fopen (path, "rb");
34 if (fd)
35 {
36 stat (path, &s);
37 file_size = s.st_size;
38 }
39 else
40 {
41 char *err = strerror (errno);
42 if (!err)
43 err = "(unknown error)";
44 note (IDS_ERR_OPEN_READ, path, err);
45 }
46 }
47
48 NetIO_File::~NetIO_File ()
49 {
50 if (fd)
51 fclose ((FILE *)fd);
52 }
53
54 int
55 NetIO_File::ok ()
56 {
57 return fd ? 1 : 0;
58 }
59
60 int
61 NetIO_File::read (char *buf, int nbytes)
62 {
63 return fread (buf, 1, nbytes, (FILE *)fd);
64 }