#ifndef BASE_FILE_UTILS_H #define BASE_FILE_UTILS_H #include #include #include //---------------------------------------------------------------- namespace file_utils { struct file_descriptor { // file_descriptor is movable but not copyable file_descriptor(file_descriptor &&) = default; file_descriptor& operator=(file_descriptor &&) = default; file_descriptor(std::string const &path, int flags); virtual ~file_descriptor(); int fd_; }; bool file_exists(std::string const &path); void check_file_exists(std::string const &file, bool must_be_regular_file = true); file_descriptor create_block_file(std::string const &path, off_t file_size); file_descriptor open_block_file(std::string const &path, off_t min_size, bool writeable, bool excl = true); uint64_t get_file_length(std::string const &file); void zero_superblock(std::string const &path); } //---------------------------------------------------------------- #endif