ESBMC
Efficient SMT-based Context-Bounded Model Checker
Loading...
Searching...
No Matches
filesystem.h File Reference
#include <cstdio>
#include <map>
#include <optional>
#include <string>
#include <string_view>
#include <vector>
Include dependency graph for filesystem.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  file_operations::file_data
 Read-only contents of a file, either bundled into the ESBMC binary or read from disk. More...
class  file_operations::tmp_path
 Represents a temporary path, which is (optionally) removed by the destructor. More...
class  file_operations::tmp_file
 Temporary path to an open file with an associated FILE handle. More...
class  file_operations::tmp_dir_override
 Points the temp directory the functions below create paths in at dir for the lifetime of this object, restoring it on destruction. More...
class  file_operations::filesystemt
 Files bundled into the binary, overlaid on the real filesystem. More...

Namespaces

namespace  file_operations
 this file will contains helper functions for manipulating files

Functions

bool file_operations::is_bundled_source (std::string_view file)
 True if file names one of ESBMC's own operational-model or library sources rather than user code.
const std::string file_operations::get_unique_tmp_path (const std::string &format)
 Generates a unique path based on the format.
tmp_file file_operations::create_tmp_file (const std::string &format="esbmc.%%%%-%%%%-%%%%", const char *mode="w+")
 The file is created exclusively and with 0600 permissions, so it is never a pre-existing path (or a symlink to one) that this would clobber.
tmp_path file_operations::create_tmp_dir (const std::string &format="esbmc.%%%%-%%%%-%%%%")
void file_operations::create_path_and_write (const std::string &path, const char *s, size_t n)
 Creates all folders needed for a path.
void file_operations::register_tmp_for_cleanup (const std::string &path)
 The register_*() registries below are process-global, append-only and unsynchronised; each is read by the function named alongside it.
void file_operations::cleanup_registered_tmps ()
void file_operations::register_pgroup_for_cleanup (long pgid)
 Track child process groups so the signal/timeout exit paths can kill them.
void file_operations::unregister_pgroup (long pgid)
void file_operations::kill_registered_pgroups ()
void file_operations::kill_registered_pgroups_from_signal ()
 Async-signal-safe counterparts of the two cleanup calls above, for use from a signal handler.
void file_operations::remove_registered_tmps_from_signal ()

Variables

constexpr const char * file_operations::ESBMC_VFS_ROOT = "/esbmc-vfs"
 Root of the bundled path namespace, e.g.