16 fprintf(stderr, "usage: %s <basename>\n", prog);
20 int main(int argc, char *argv[])
29 for (i = 0; i <= S_IFMT; i += (1 << S_SHIFT)) {
34 sprintf(name, "%s-mknod%06o", argv[1], mode);
35 rc = mknod(name, mode, 0x1234);
40 case S_IFCHR: case S_IFBLK:
41 if (rc < 0 && getuid() != 0)
43 case S_IFSOCK: case S_IFIFO:
45 fprintf(stderr, "%s: ERROR mknod %s: %s\n",
46 argv[0], name, strerror(errno));
51 fprintf(stderr, "%s: ERROR stat %s: %s",
52 argv[0], name, strerror(errno));
55 if (st.st_mode != mode) {
56 fprintf(stderr, "%s: ERROR mode %s: %o != %o",
57 argv[0], name, st.st_mode, mode);
62 fprintf(stderr, "%s: ERROR unlink %s: %s",
63 argv[0], name, strerror(errno));
69 fprintf(stderr, "%s: ERROR: %s created\n",
76 for (i = 0; i <= S_IFMT; i += (1 << S_SHIFT)) {
83 sprintf(name, "%s-creat%06o", argv[1], mode);
84 fd = open(name, O_CREAT|O_RDONLY, mode);
86 fprintf(stderr, "%s: ERROR creat %s: %s\n",
87 argv[0], name, strerror(errno));
93 fprintf(stderr, "%s: ERROR stat %s: %s",
94 argv[0], name, strerror(errno));
97 if (!S_ISREG(st.st_mode & S_IFMT)) {
98 fprintf(stderr, "%s: ERROR mode %s: %o != %o",
99 argv[0], name, st.st_mode & S_IFMT, S_IFREG);
104 fprintf(stderr, "%s: ERROR unlink %s: %s\n",
105 argv[0], name, strerror(errno));
110 for (i = 0; i <= S_IFMT; i += (1 << S_SHIFT)) {
114 sprintf(name, "%s-mkdir%06o", argv[1], i | 0644);
115 rc = mkdir(name, i | 0664);
117 fprintf(stderr, "%s: ERROR mkdir %s: %s\n",
118 argv[0], name, strerror(errno));
121 rc = stat(name, &st);
123 fprintf(stderr, "%s: ERROR stat %s: %s",
124 argv[0], name, strerror(errno));
127 if (!S_ISDIR(st.st_mode)) {
128 fprintf(stderr, "%s: ERROR mode %s: %o != %o",
129 argv[0], name, st.st_mode & S_IFMT, S_IFDIR);
134 fprintf(stderr, "%s: ERROR rmdir %s: %s\n",
135 argv[0], name, strerror(errno));
140 printf("%s: SUCCESS\n", argv[0]);