This source file includes following definitions.
- main
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 #include <config.h>
18
19 #include <stdio.h>
20
21 #include <errno.h>
22 #include <unistd.h>
23
24 #include "macros.h"
25
26 int
27 main (int argc, char **argv)
28 {
29 const char *filename = argv[1];
30
31
32
33 {
34 FILE *fp = fopen (filename, "r");
35 ASSERT (fp != NULL);
36 setvbuf (fp, NULL, _IONBF, 0);
37 ASSERT (ftell (fp) == 0);
38 ASSERT (fseeko (fp, 0, SEEK_END) == 0);
39 ASSERT (ftell (fp) > 0);
40 ASSERT (close (fileno (fp)) == 0);
41 errno = 0;
42 ASSERT (fseeko (fp, 0, SEEK_SET) == -1);
43 ASSERT (errno == EBADF);
44 fclose (fp);
45 }
46
47
48
49 {
50 FILE *fp = fdopen (-1, "w");
51 if (fp != NULL)
52 {
53 errno = 0;
54 ASSERT (fseeko (fp, 0, SEEK_END) == -1);
55 ASSERT (errno == EBADF);
56 fclose (fp);
57 }
58 }
59 {
60 FILE *fp;
61 close (99);
62 fp = fdopen (99, "w");
63 if (fp != NULL)
64 {
65 errno = 0;
66 ASSERT (fseeko (fp, 0, SEEK_END) == -1);
67 ASSERT (errno == EBADF);
68 fclose (fp);
69 }
70 }
71
72 return 0;
73 }