]>
Commit | Line | Data |
---|---|---|
23c9e63c DD |
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 "win32.h" | |
20 | #include <stdio.h> | |
21 | #include <sys/types.h> | |
22 | #include <sys/stat.h> | |
23 | #include <errno.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 | } |