1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20: #include <dirent.h>
21: #include <errno.h>
22: #include <fcntl.h>
23: #include <stdio.h>
24: #include <stdlib.h>
25: #include <string.h>
26: #include <unistd.h>
27:
28:
29: char tmpname[] = "fifoXXXXXX";
30:
31:
32:
33: static int
34: real_test (void)
35: {
36: DIR *dirp;
37:
38:
39: dirp = opendir (tmpname);
40:
41:
42: if (dirp != NULL)
43: {
44:
45: fputs ("`opendir' succeeded on a FIFO???\n", stdout);
46: closedir (dirp);
47: return 1;
48: }
49:
50: if (errno != ENOTDIR)
51: {
52: fprintf (stdout, "`opendir' return error `%s' instead of `%s'\n",
53: strerror (errno), strerror (ENOTDIR));
54: return 1;
55: }
56:
57: return 0;
58: }
59:
60:
61: static int
62: do_test (int argc, char *argv[])
63: {
64: int retval;
65:
66: if (mktemp (tmpname) == NULL)
67: {
68: perror ("mktemp");
69: return 1;
70: }
71:
72:
73: if (mknod (tmpname, 0600 | S_IFIFO, 0) < 0)
74: {
75: perror ("mknod");
76:
77: return 0;
78: }
79:
80: retval = real_test ();
81:
82: remove (tmpname);
83:
84: return retval;
85: }
86:
87:
88: static void
89: do_cleanup (void)
90: {
91: remove (tmpname);
92: }
93: #define CLEANUP_HANDLER do_cleanup ()
94:
95:
96:
97: #include <test-skeleton.c>