#include "userfunc.hpp"
#include <set>
+// make sure we have proper large file support
+#include <features.h>
+#ifndef _GNU_SOURCE
+ #define _GNU_SOURCE
+#endif
+
namespace I2n
{
/**
time_t mtime() const { return Mtime; }
time_t ctime() const { return Ctime; }
+ // bytes used on disk, calculated from allocated blocks
+ long long bytes_on_disk() const { return BytesOnDisk; }
+
nlink_t num_hard_links() const { return NumLinks; }
dev_t device_type() const { return DeviceType; }
time_t last_modified_time() const { return Mtime; }
gid_t Gid;
dev_t DeviceType;
off_t Size;
+ long long BytesOnDisk;
time_t Atime;
time_t Mtime;
time_t Ctime;
bool get_dir(const std::string& path, std::vector< std::string >& result, bool include_dot_names= false );
std::vector< std::string > get_dir(const std::string& path, bool include_dot_names= false );
+int get_dir_count(const std::string& path, bool include_dot_names= false );
bool unlink(const std::string& path);
std::string *error=NULL);
std::string mkdtemp(const std::string &path_template, std::string *error=NULL);
+// mkstemp: see tmpfstream
+
bool mkdir(const std::string &path, const mode_t &mode=0700, std::string *error=NULL);
bool rmdir(const std::string &path, std::string *error=NULL);
mode_t umask(mode_t mask);
long long get_free_diskspace(const std::string& path);
-
+long long du(const std::string &path, std::string *error=NULL);
/*
** more specialized tool function(s)