2 * Copyright (C) 2006-2007, 2010-2012 Free Software Foundation, Inc.
3 * Written by Simon Josefsson
5 * This program is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 3 of the License, or
8 * (at your option) any later version.
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
15 * You should have received a copy of the GNU General Public License
16 * along with this program. If not, see <http://www.gnu.org/licenses/>. */
20 #include "read-file.h"
26 #define FILE1 "/etc/resolv.conf"
27 #define FILE2 "/dev/null"
35 /* We can perform the test only if the file exists and is readable.
36 Test whether it exists, then assume it is world-readable. */
37 if (stat (FILE1
, &statbuf
) >= 0)
40 char *out
= read_file (FILE1
, &len
);
44 perror ("Could not read file");
51 perror ("BAD: out[len] not zero");
55 if (S_ISREG (statbuf
.st_mode
))
57 /* FILE1 is a regular file or a symlink to a regular file. */
58 if (len
!= statbuf
.st_size
)
60 fprintf (stderr
, "Read %ld from %s...\n", (unsigned long) len
, FILE1
);
66 /* Assume FILE1 is not empty. */
69 fprintf (stderr
, "Read nothing from %s\n", FILE1
);
77 /* We can perform the test only if the file exists and is readable.
78 Test whether it exists, then assume it is world-readable. */
79 if (stat (FILE2
, &statbuf
) >= 0)
82 char *out
= read_file (FILE2
, &len
);
86 perror ("Could not read file");
93 perror ("BAD: out[len] not zero");
97 /* /dev/null should always be empty. Ignore statbuf.st_size, since it
98 is not a regular file. */
101 fprintf (stderr
, "Read %ld from %s...\n", (unsigned long) len
, FILE2
);