#include #include #include #include #include #include #include #define VALIDATE_AND_GOTO_LABEL_ON_ERROR(func, ret, label) \ do { \ if (ret < 0) { \ fprintf(stderr, "%s : returned error %d (%s)\n", func, ret, \ strerror(errno)); \ goto label; \ } \ } while (0) int main(int argc, char *argv[]) { int ret = -1; int flags = O_WRONLY | O_CREAT | O_TRUNC; int do_write = 0; glfs_t *fs = NULL; glfs_fd_t *fd1 = NULL; glfs_fd_t *fd2 = NULL; char *volname = NULL; char *logfile = NULL; const char *dirname = "/some_dir1"; const char *filename = "/some_dir1/testfile"; const char *short_filename = "testfile"; struct stat sb; char buf[512]; struct dirent *entry = NULL; if (argc != 4) { fprintf(stderr, "Invalid argument\n"); fprintf(stderr, "Usage: %s d_name, short_filename)) { if (sb.st_mode == 0) { fprintf( stderr, "Mode bits are incorrect: d_name - %s, st_mode - %jd\n", entry->d_name, (intmax_t)sb.st_mode); ret = -1; goto out; } } } } while (entry != NULL); out: if (fd1 != NULL) glfs_close(fd1); if (fd2 != NULL) glfs_closedir(fd2); if (fs) { /* * If this fails (as it does on Special Snowflake NetBSD for no * good reason), it shouldn't affect the result of the test. */ (void)glfs_fini(fs); } return ret; }