26#if defined (HAVE_CONFIG_H)
39#if defined (OCTAVE_USE_WINDOWS_API)
138 return ::octave_have_struct_stat_st_rdev ();
160 return std::string (buf);
168 const sys::time&
time)
180 if (! m_file_name.empty ())
187file_stat::update_internal (
bool force)
194 std::string full_file_name = sys::file_ops::tilde_expand (m_file_name);
196#if defined (OCTAVE_USE_WINDOWS_API)
197 full_file_name = sys::env::make_absolute (full_file_name);
200 while (full_file_name.length () > 1
201 && sys::file_ops::is_dir_sep (full_file_name.back ()))
202 full_file_name.pop_back ();
208 static const regexp pat (R
"(^\\\\[\w.-]+\\[\w\$-]+$)");
209 if ((full_file_name.length () == 2 && full_file_name[1] ==
':')
210 || (full_file_name.length () > 4 && full_file_name[0] ==
'\\'
211 && full_file_name[1] ==
'\\' && pat.is_match (full_file_name)))
212 full_file_name.push_back (
'\\');
215 const char *cname = full_file_name.c_str ();
217 time_t sys_atime, sys_mtime, sys_ctime;
218 long int atime_nsec, mtime_nsec, ctime_nsec;
224 &sys_atime, &atime_nsec, &sys_mtime,
225 &mtime_nsec, &sys_ctime, &ctime_nsec,
229 &sys_atime, &atime_nsec, &sys_mtime,
230 &mtime_nsec, &sys_ctime, &ctime_nsec,
240 m_atime = sys::time (
static_cast<OCTAVE_TIME_T
> (sys_atime),
242 m_mtime = sys::time (
static_cast<OCTAVE_TIME_T
> (sys_mtime),
244 m_ctime = sys::time (
static_cast<OCTAVE_TIME_T
> (sys_ctime),
253file_fstat::update_internal (
bool force)
260 time_t sys_atime, sys_mtime, sys_ctime;
261 long int atime_nsec, mtime_nsec, ctime_nsec;
266 &sys_atime, &atime_nsec, &sys_mtime,
267 &mtime_nsec, &sys_ctime, &ctime_nsec,
277 m_atime = sys::time (
static_cast<OCTAVE_TIME_T
> (sys_atime),
279 m_mtime = sys::time (
static_cast<OCTAVE_TIME_T
> (sys_mtime),
281 m_ctime = sys::time (
static_cast<OCTAVE_TIME_T
> (sys_ctime),
289OCTAVE_END_NAMESPACE(sys)
290OCTAVE_END_NAMESPACE(octave)
bool is_newer(const sys::time &time) const
static bool have_struct_stat_st_blocks()
static bool have_struct_stat_st_blksize()
std::string mode_as_string() const
static bool have_struct_stat_st_rdev()
file_stat(const std::string &n="", bool fl=true)
OCTAVE_BEGIN_NAMESPACE(octave) static octave_value daspk_fcn
bool octave_is_lnk_wrapper(mode_t mode)
int octave_lstat_wrapper(const char *lname, mode_t *mode, ino_t *ino, dev_t *dev, nlink_t *nlink, uid_t *uid, gid_t *gid, off_t *size, time_t *atime, long int *atime_nsec, time_t *mtime, long int *mtime_nsec, time_t *ctime, long int *ctime_nsec, dev_t *rdev, long *blksize, long *blocks)
bool octave_is_chr_wrapper(mode_t mode)
bool octave_is_fifo_wrapper(mode_t mode)
bool octave_have_struct_stat_st_blocks(void)
bool octave_is_blk_wrapper(mode_t mode)
bool octave_is_dir_wrapper(mode_t mode)
bool octave_is_reg_wrapper(mode_t mode)
int octave_stat_wrapper(const char *fname, mode_t *mode, ino_t *ino, dev_t *dev, nlink_t *nlink, uid_t *uid, gid_t *gid, off_t *size, time_t *atime, long int *atime_nsec, time_t *mtime, long int *mtime_nsec, time_t *ctime, long int *ctime_nsec, dev_t *rdev, long *blksize, long *blocks)
int octave_fstat_wrapper(int fid, mode_t *mode, ino_t *ino, dev_t *dev, nlink_t *nlink, uid_t *uid, gid_t *gid, off_t *size, time_t *atime, long int *atime_nsec, time_t *mtime, long int *mtime_nsec, time_t *ctime, long int *ctime_nsec, dev_t *rdev, long *blksize, long *blocks)
bool octave_is_sock_wrapper(mode_t mode)
bool octave_have_struct_stat_st_blksize(void)
void octave_strmode_wrapper(mode_t mode, char *buffer)