file.c File Reference

#include "ruby/ruby.h"
#include "ruby/io.h"
#include "ruby/util.h"
#include "dln.h"
#include "internal.h"
#include <ctype.h>
#include <time.h>
#include <sys/types.h>
#include <sys/stat.h>

Go to the source code of this file.

Data Structures

struct  chown_args
struct  utime_args
struct  utimbuf

Defines

#define MAXPATHLEN   1024
#define lstat   stat
#define STAT(p, s)   stat((p), (s))
#define insecure_obj_p(obj, level)   ((level) >= 4 || ((level) > 0 && OBJ_TAINTED(obj)))
#define ST2UINT(val)   ((val) & ~(~1UL << (sizeof(val) * CHAR_BIT - 1)))
#define NUM2DEVT(v)   NUM2UINT(v)
#define DEVT2NUM(v)   UINT2NUM(v)
#define PRI_DEVT_PREFIX   ""
#define S_IXUGO   (S_IXUSR | S_IXGRP | S_IXOTH)
#define S_ISDIR(m)   (((m) & S_IFMT) == S_IFDIR)
#define S_ISBLK(m)   (0)
#define S_ISCHR(m)   (((m) & S_IFMT) == S_IFCHR)
#define S_IRUGO   (S_IRUSR | S_IRGRP | S_IROTH)
#define S_IWUGO   (S_IWUSR | S_IWGRP | S_IWOTH)
#define S_ISREG(m)   (((m) & S_IFMT) == S_IFREG)
#define rb_file_s_lchmod   rb_f_notimplement
#define rb_file_s_lchown   rb_f_notimplement
#define utime_failed(path, tsp, atime, mtime)   rb_sys_fail_path(path)
#define rb_file_s_link   rb_f_notimplement
#define rb_file_s_symlink   rb_f_notimplement
#define rb_file_s_readlink   rb_f_notimplement
#define isdirsep(x)   ((x) == '/')
#define USE_NTFS   0
#define istrailinggarbage(x)   0
#define Next(p, e, enc)   ((p) + rb_enc_mbclen((p), (e), (enc)))
#define Inc(p, e, enc)   ((p) = Next((p), (e), (enc)))
#define has_unc(buf)   0
#define nextdirsep   rb_enc_path_next
#define skipprefix(path, end, enc)   (path)
#define strrdirsep   rb_enc_path_last_separator
#define BUFCHECK(cond)
#define BUFINIT()
#define EXPAND_PATH_BUFFER()   rb_usascii_str_new(0, MAXPATHLEN + 2)
#define expand_path(fname, dname, abs_mode, long_name, result)   str_shrink(rb_file_expand_path_internal(fname, dname, abs_mode, long_name, result))
#define check_expand_path_args(fname, dname)
#define fncomp   strncmp
#define rb_file_s_truncate   rb_f_notimplement
#define rb_file_truncate   rb_f_notimplement
#define LOCK_SH   1
#define LOCK_EX   2
#define LOCK_NB   4
#define LOCK_UN   8
#define CHECK(n)   test_check((n), argc, argv)
#define ENABLE_PATH_CHECK   1
#define S_IWOTH   002
#define fpath_check(path)   path_check_0((path), FALSE)
#define O_BINARY   0

Functions

int flock (int, int)
static VALUE file_path_convert (VALUE name)
static rb_encodingcheck_path_encoding (VALUE str)
VALUE rb_get_path_check_to_string (VALUE obj, int level)
VALUE rb_get_path_check_convert (VALUE obj, VALUE tmp, int level)
static VALUE rb_get_path_check (VALUE obj, int level)
VALUE rb_get_path_no_checksafe (VALUE obj)
VALUE rb_get_path (VALUE obj)
VALUE rb_str_encode_ospath (VALUE path)
static long apply2files (void(*func)(const char *, VALUE, void *), VALUE vargs, void *arg)
static VALUE rb_file_path (VALUE obj)
static size_t stat_memsize (const void *p)
static VALUE stat_new_0 (VALUE klass, const struct stat *st)
VALUE rb_stat_new (const struct stat *st)
static struct stat * get_stat (VALUE self)
static struct timespec stat_mtimespec (struct stat *st)
static VALUE rb_stat_cmp (VALUE self, VALUE other)
static VALUE rb_stat_dev (VALUE self)
static VALUE rb_stat_dev_major (VALUE self)
static VALUE rb_stat_dev_minor (VALUE self)
static VALUE rb_stat_ino (VALUE self)
static VALUE rb_stat_mode (VALUE self)
static VALUE rb_stat_nlink (VALUE self)
static VALUE rb_stat_uid (VALUE self)
static VALUE rb_stat_gid (VALUE self)
static VALUE rb_stat_rdev (VALUE self)
static VALUE rb_stat_rdev_major (VALUE self)
static VALUE rb_stat_rdev_minor (VALUE self)
static VALUE rb_stat_size (VALUE self)
static VALUE rb_stat_blksize (VALUE self)
static VALUE rb_stat_blocks (VALUE self)
static struct timespec stat_atimespec (struct stat *st)
static VALUE stat_atime (struct stat *st)
static VALUE stat_mtime (struct stat *st)
static struct timespec stat_ctimespec (struct stat *st)
static VALUE stat_ctime (struct stat *st)
static VALUE rb_stat_atime (VALUE self)
static VALUE rb_stat_mtime (VALUE self)
static VALUE rb_stat_ctime (VALUE self)
static VALUE rb_stat_inspect (VALUE self)
static int rb_stat (VALUE file, struct stat *st)
static VALUE rb_file_s_stat (VALUE klass, VALUE fname)
static VALUE rb_io_stat (VALUE obj)
static VALUE rb_file_s_lstat (VALUE klass, VALUE fname)
static VALUE rb_file_lstat (VALUE obj)
static int rb_group_member (GETGROUPS_T gid)
int eaccess (const char *path, int mode)
VALUE rb_file_directory_p (VALUE obj, VALUE fname)
static VALUE rb_file_pipe_p (VALUE obj, VALUE fname)
static VALUE rb_file_symlink_p (VALUE obj, VALUE fname)
static VALUE rb_file_socket_p (VALUE obj, VALUE fname)
static VALUE rb_file_blockdev_p (VALUE obj, VALUE fname)
static VALUE rb_file_chardev_p (VALUE obj, VALUE fname)
static VALUE rb_file_exist_p (VALUE obj, VALUE fname)
static VALUE rb_file_exists_p (VALUE obj, VALUE fname)
static VALUE rb_file_readable_p (VALUE obj, VALUE fname)
static VALUE rb_file_readable_real_p (VALUE obj, VALUE fname)
static VALUE rb_file_world_readable_p (VALUE obj, VALUE fname)
static VALUE rb_file_writable_p (VALUE obj, VALUE fname)
static VALUE rb_file_writable_real_p (VALUE obj, VALUE fname)
static VALUE rb_file_world_writable_p (VALUE obj, VALUE fname)
static VALUE rb_file_executable_p (VALUE obj, VALUE fname)
static VALUE rb_file_executable_real_p (VALUE obj, VALUE fname)
static VALUE rb_file_file_p (VALUE obj, VALUE fname)
static VALUE rb_file_zero_p (VALUE obj, VALUE fname)
static VALUE rb_file_size_p (VALUE obj, VALUE fname)
static VALUE rb_file_owned_p (VALUE obj, VALUE fname)
static VALUE rb_file_rowned_p (VALUE obj, VALUE fname)
static VALUE rb_file_grpowned_p (VALUE obj, VALUE fname)
static VALUE rb_file_suid_p (VALUE obj, VALUE fname)
static VALUE rb_file_sgid_p (VALUE obj, VALUE fname)
static VALUE rb_file_sticky_p (VALUE obj, VALUE fname)
static VALUE rb_file_identical_p (VALUE obj, VALUE fname1, VALUE fname2)
static VALUE rb_file_s_size (VALUE klass, VALUE fname)
static VALUE rb_file_ftype (const struct stat *st)
static VALUE rb_file_s_ftype (VALUE klass, VALUE fname)
static VALUE rb_file_s_atime (VALUE klass, VALUE fname)
static VALUE rb_file_atime (VALUE obj)
static VALUE rb_file_s_mtime (VALUE klass, VALUE fname)
static VALUE rb_file_mtime (VALUE obj)
static VALUE rb_file_s_ctime (VALUE klass, VALUE fname)
static VALUE rb_file_ctime (VALUE obj)
static VALUE rb_file_size (VALUE obj)
static void chmod_internal (const char *path, VALUE pathv, void *mode)
static VALUE rb_file_s_chmod (int argc, VALUE *argv)
static VALUE rb_file_chmod (VALUE obj, VALUE vmode)
static void chown_internal (const char *path, VALUE pathv, void *arg)
static VALUE rb_file_s_chown (int argc, VALUE *argv)
static VALUE rb_file_chown (VALUE obj, VALUE owner, VALUE group)
static void utime_internal (const char *path, VALUE pathv, void *arg)
static VALUE rb_file_s_utime (int argc, VALUE *argv)
 NORETURN (static void sys_fail2(VALUE, VALUE))
static void sys_fail2 (VALUE s1, VALUE s2)
static void unlink_internal (const char *path, VALUE pathv, void *arg)
static VALUE rb_file_s_unlink (VALUE klass, VALUE args)
static VALUE rb_file_s_rename (VALUE klass, VALUE from, VALUE to)
static VALUE rb_file_s_umask (int argc, VALUE *argv)
static char * skiproot (const char *path, const char *end, rb_encoding *enc)
char * rb_enc_path_next (const char *s, const char *e, rb_encoding *enc)
char * rb_enc_path_skip_prefix (const char *path, const char *end, rb_encoding *enc)
static char * skipprefixroot (const char *path, const char *end, rb_encoding *enc)
char * rb_enc_path_last_separator (const char *path, const char *end, rb_encoding *enc)
static char * chompdirsep (const char *path, const char *end, rb_encoding *enc)
char * rb_enc_path_end (const char *path, const char *end, rb_encoding *enc)
static VALUE copy_home_path (VALUE result, const char *dir)
VALUE rb_home_dir_of (VALUE user, VALUE result)
VALUE rb_default_home_dir (VALUE result)
static char * append_fspath (VALUE result, VALUE fname, char *dir, rb_encoding **enc, rb_encoding *fsenc)
VALUE rb_file_expand_path_internal (VALUE fname, VALUE dname, int abs_mode, int long_name, VALUE result)
static VALUE str_shrink (VALUE str)
static VALUE file_expand_path_1 (VALUE fname)
VALUE rb_file_expand_path (VALUE fname, VALUE dname)
VALUE rb_file_expand_path_fast (VALUE fname, VALUE dname)
VALUE rb_file_s_expand_path (int argc, VALUE *argv)
VALUE rb_file_absolute_path (VALUE fname, VALUE dname)
VALUE rb_file_s_absolute_path (int argc, VALUE *argv)
static void realpath_rec (long *prefixlenp, VALUE *resolvedp, const char *unresolved, VALUE loopcheck, int strict, int last)
VALUE rb_realpath_internal (VALUE basedir, VALUE path, int strict)
static VALUE rb_file_s_realpath (int argc, VALUE *argv, VALUE klass)
static VALUE rb_file_s_realdirpath (int argc, VALUE *argv, VALUE klass)
static size_t rmext (const char *p, long l0, long l1, const char *e, long l2, rb_encoding *enc)
const char * ruby_enc_find_basename (const char *name, long *baselen, long *alllen, rb_encoding *enc)
static VALUE rb_file_s_basename (int argc, VALUE *argv)
static VALUE rb_file_s_dirname (VALUE klass, VALUE fname)
VALUE rb_file_dirname (VALUE fname)
const char * ruby_enc_find_extname (const char *name, long *len, rb_encoding *enc)
static VALUE rb_file_s_extname (VALUE klass, VALUE fname)
static VALUE rb_file_s_path (VALUE klass, VALUE fname)
static VALUE rb_file_s_split (VALUE klass, VALUE path)
static VALUE rb_file_join (VALUE ary, VALUE sep)
static VALUE file_inspect_join (VALUE ary, VALUE argp, int recur)
static VALUE rb_file_s_join (VALUE klass, VALUE args)
static VALUE rb_thread_flock (void *data)
static VALUE rb_file_flock (VALUE obj, VALUE operation)
static void test_check (int n, int argc, VALUE *argv)
static VALUE rb_f_test (int argc, VALUE *argv)
static VALUE rb_stat_s_alloc (VALUE klass)
static VALUE rb_stat_init (VALUE obj, VALUE fname)
static VALUE rb_stat_init_copy (VALUE copy, VALUE orig)
static VALUE rb_stat_ftype (VALUE obj)
static VALUE rb_stat_d (VALUE obj)
static VALUE rb_stat_p (VALUE obj)
static VALUE rb_stat_l (VALUE obj)
static VALUE rb_stat_S (VALUE obj)
static VALUE rb_stat_b (VALUE obj)
static VALUE rb_stat_c (VALUE obj)
static VALUE rb_stat_owned (VALUE obj)
static VALUE rb_stat_rowned (VALUE obj)
static VALUE rb_stat_grpowned (VALUE obj)
static VALUE rb_stat_r (VALUE obj)
static VALUE rb_stat_R (VALUE obj)
static VALUE rb_stat_wr (VALUE obj)
static VALUE rb_stat_w (VALUE obj)
static VALUE rb_stat_W (VALUE obj)
static VALUE rb_stat_ww (VALUE obj)
static VALUE rb_stat_x (VALUE obj)
static VALUE rb_stat_X (VALUE obj)
static VALUE rb_stat_f (VALUE obj)
static VALUE rb_stat_z (VALUE obj)
static VALUE rb_stat_s (VALUE obj)
static VALUE rb_stat_suid (VALUE obj)
static VALUE rb_stat_sgid (VALUE obj)
static VALUE rb_stat_sticky (VALUE obj)
void rb_file_const (const char *name, VALUE value)
int rb_is_absolute_path (const char *path)
static int path_check_0 (VALUE path, int execpath)
int rb_path_check (const char *path)
int rb_file_load_ok (const char *path)
static int is_explicit_relative (const char *path)
static VALUE copy_path_class (VALUE path, VALUE orig)
int rb_find_file_ext (VALUE *filep, const char *const *ext)
int rb_find_file_ext_safe (VALUE *filep, const char *const *ext, int safe_level)
VALUE rb_find_file (VALUE path)
VALUE rb_find_file_safe (VALUE path, int safe_level)
static void define_filetest_function (const char *name, VALUE(*func)(ANYARGS), int argc)
void Init_File (void)

Variables

VALUE rb_cFile
VALUE rb_mFileTest
VALUE rb_cStat
static const rb_data_type_t stat_data_type
static VALUE separator
VALUE rb_mFConst
static const char null_device []


Define Documentation

#define BUFCHECK ( cond   ) 

Value:

do {\
    bdiff = p - buf;\
    if (cond) {\
        do {buflen *= 2;} while (cond);\
        rb_str_resize(result, buflen);\
        buf = RSTRING_PTR(result);\
        p = buf + bdiff;\
        pend = buf + buflen;\
    }\
} while (0)

Definition at line 2959 of file file.c.

Referenced by rb_file_expand_path_internal().

 
#define BUFINIT (  ) 

Value:

(\
    p = buf = RSTRING_PTR(result),\
    buflen = RSTRING_LEN(result),\
    pend = p + buflen)

Definition at line 2970 of file file.c.

Referenced by rb_file_expand_path_internal().

#define CHECK (  )     test_check((n), argc, argv)

Definition at line 4438 of file file.c.

#define check_expand_path_args ( fname,
dname   ) 

Value:

(((fname) = rb_get_path(fname)), \
     (void)(NIL_P(dname) ? (dname) : ((dname) = rb_get_path(dname))))

Definition at line 3410 of file file.c.

Referenced by rb_file_absolute_path(), and rb_file_expand_path().

#define DEVT2NUM (  )     UINT2NUM(v)

Definition at line 435 of file file.c.

#define ENABLE_PATH_CHECK   1

Definition at line 5299 of file file.c.

#define expand_path ( fname,
dname,
abs_mode,
long_name,
result   )     str_shrink(rb_file_expand_path_internal(fname, dname, abs_mode, long_name, result))

Definition at line 3407 of file file.c.

Referenced by rb_file_absolute_path(), rb_file_expand_path(), and rb_file_expand_path_fast().

 
#define EXPAND_PATH_BUFFER (  )     rb_usascii_str_new(0, MAXPATHLEN + 2)

Definition at line 3398 of file file.c.

Referenced by file_expand_path_1(), rb_file_absolute_path(), rb_file_expand_path(), and rb_file_expand_path_fast().

#define fncomp   strncmp

Referenced by rmext().

#define fpath_check ( path   )     path_check_0((path), FALSE)

Definition at line 5354 of file file.c.

Referenced by rb_find_file_ext_safe(), and rb_find_file_safe().

#define has_unc ( buf   )     0

Definition at line 2776 of file file.c.

#define Inc ( p,
e,
enc   )     ((p) = Next((p), (e), (enc)))

Definition at line 2771 of file file.c.

#define insecure_obj_p ( obj,
level   )     ((level) >= 4 || ((level) > 0 && OBJ_TAINTED(obj)))

Definition at line 143 of file file.c.

Referenced by rb_get_path_check_convert(), and rb_get_path_check_to_string().

#define isdirsep (  )     ((x) == '/')

Definition at line 2753 of file file.c.

#define istrailinggarbage (  )     0

Definition at line 2767 of file file.c.

Referenced by rb_file_expand_path_internal(), and ruby_enc_find_extname().

#define LOCK_EX   2

Definition at line 4305 of file file.c.

Referenced by flock_winnt(), and Init_File().

#define LOCK_NB   4

Definition at line 4308 of file file.c.

Referenced by flock_winnt(), Init_File(), and rb_file_flock().

#define LOCK_SH   1

Definition at line 4302 of file file.c.

Referenced by flock_winnt(), and Init_File().

#define LOCK_UN   8

Definition at line 4311 of file file.c.

Referenced by flock_winnt(), and Init_File().

#define lstat   stat

Definition at line 86 of file file.c.

Referenced by rb_file_expand_path_internal(), rb_file_lstat(), rb_file_s_ftype(), rb_file_s_lstat(), rb_file_symlink_p(), and realpath_rec().

#define MAXPATHLEN   1024

Definition at line 46 of file file.c.

#define Next ( p,
e,
enc   )     ((p) + rb_enc_mbclen((p), (e), (enc)))

Definition at line 2770 of file file.c.

#define nextdirsep   rb_enc_path_next

Definition at line 2844 of file file.c.

Referenced by rb_file_expand_path_internal().

#define NUM2DEVT (  )     NUM2UINT(v)

Definition at line 432 of file file.c.

#define O_BINARY   0

#define PRI_DEVT_PREFIX   ""

Definition at line 438 of file file.c.

#define rb_file_s_lchmod   rb_f_notimplement

Definition at line 2219 of file file.c.

Referenced by Init_File().

#define rb_file_s_lchown   rb_f_notimplement

Definition at line 2363 of file file.c.

Referenced by Init_File().

#define rb_file_s_link   rb_f_notimplement

Definition at line 2549 of file file.c.

Referenced by Init_File().

#define rb_file_s_readlink   rb_f_notimplement

Definition at line 2632 of file file.c.

Referenced by Init_File().

#define rb_file_s_symlink   rb_f_notimplement

Definition at line 2580 of file file.c.

Referenced by Init_File().

#define rb_file_s_truncate   rb_f_notimplement

Definition at line 4250 of file file.c.

Referenced by Init_File().

#define rb_file_truncate   rb_f_notimplement

Definition at line 4298 of file file.c.

Referenced by Init_File().

#define S_IRUGO   (S_IRUSR | S_IRGRP | S_IROTH)

Definition at line 1454 of file file.c.

Referenced by rb_file_world_readable_p(), rb_file_world_writable_p(), rb_stat_wr(), and rb_stat_ww().

#define S_ISBLK (  )     (0)

Referenced by rb_file_blockdev_p(), rb_file_ftype(), and rb_stat_b().

#define S_ISCHR (  )     (((m) & S_IFMT) == S_IFCHR)

Referenced by fill_random_seed(), rb_file_chardev_p(), rb_file_ftype(), and rb_stat_c().

#define S_ISDIR (  )     (((m) & S_IFMT) == S_IFDIR)

#define S_ISREG (  )     (((m) & S_IFMT) == S_IFREG)

Definition at line 1594 of file file.c.

Referenced by rb_file_file_p(), rb_file_ftype(), rb_file_load_ok(), rb_stat_f(), remain_size(), and wsplit_p().

#define S_IWOTH   002

Referenced by path_check_0(), rb_file_world_writable_p(), rb_stat_W(), rb_stat_w(), rb_stat_ww(), rb_w32_fstat(), rb_w32_fstati64(), and wstati64().

#define S_IWUGO   (S_IWUSR | S_IWGRP | S_IWOTH)

Definition at line 1458 of file file.c.

Referenced by rb_file_world_readable_p(), rb_file_world_writable_p(), rb_stat_wr(), and rb_stat_ww().

#define S_IXUGO   (S_IXUSR | S_IXGRP | S_IXOTH)

Definition at line 1137 of file file.c.

Referenced by eaccess(), rb_file_world_readable_p(), rb_file_world_writable_p(), rb_stat_wr(), rb_stat_ww(), rb_stat_X(), and rb_stat_x().

#define skipprefix ( path,
end,
enc   )     (path)

Definition at line 2857 of file file.c.

Referenced by rb_file_dirname(), rb_file_expand_path_internal(), ruby_enc_find_basename(), and skipprefixroot().

#define ST2UINT ( val   )     ((val) & ~(~1UL << (sizeof(val) * CHAR_BIT - 1)))

Definition at line 429 of file file.c.

Referenced by rb_stat_mode().

#define STAT ( p,
 )     stat((p), (s))

Definition at line 109 of file file.c.

#define strrdirsep   rb_enc_path_last_separator

Definition at line 2892 of file file.c.

Referenced by path_check_0(), rb_file_dirname(), rb_file_expand_path_internal(), realpath_rec(), ruby_enc_find_basename(), and ruby_enc_find_extname().

#define USE_NTFS   0

Definition at line 2760 of file file.c.

#define utime_failed ( path,
tsp,
atime,
mtime   )     rb_sys_fail_path(path)

Definition at line 2406 of file file.c.

Referenced by utime_internal().


Function Documentation

static char* append_fspath ( VALUE  result,
VALUE  fname,
char *  dir,
rb_encoding **  enc,
rb_encoding fsenc 
) [static]

Definition at line 3029 of file file.c.

References buf, NIL_P, Qnil, rb_enc_associate(), rb_enc_check(), rb_enc_str_new(), rb_str_capacity(), rb_str_conv_enc(), rb_str_resize(), RSTRING_GETMEM, RSTRING_PTR, strlen(), VALUE, and xfree.

Referenced by rb_file_expand_path_internal().

static long apply2files ( void(*)(const char *, VALUE, void *)  func,
VALUE  vargs,
void *  arg 
) [static]

Definition at line 316 of file file.c.

References RARRAY_AREF, RARRAY_LEN, rb_get_path(), rb_str_encode_ospath(), RSTRING_PTR, and VALUE.

Referenced by rb_file_s_chmod(), rb_file_s_chown(), rb_file_s_unlink(), and rb_file_s_utime().

static rb_encoding* check_path_encoding ( VALUE  str  )  [static]

Definition at line 165 of file file.c.

References PRIsVALUE, rb_eEncCompatError, rb_enc_asciicompat, rb_enc_get(), rb_enc_name, rb_raise(), and rb_str_inspect().

Referenced by rb_file_join(), rb_file_s_basename(), and rb_get_path_check_convert().

static void chmod_internal ( const char *  path,
VALUE  pathv,
void *  mode 
) [static]

Definition at line 2112 of file file.c.

References rb_sys_fail_path.

Referenced by rb_file_s_chmod().

static char* chompdirsep ( const char *  path,
const char *  end,
rb_encoding enc 
) [static]

Definition at line 2912 of file file.c.

References Inc, isdirsep, and last.

Referenced by rb_enc_path_end(), rb_file_expand_path_internal(), rb_file_join(), rb_realpath_internal(), and ruby_enc_find_basename().

static void chown_internal ( const char *  path,
VALUE  pathv,
void *  arg 
) [static]

Definition at line 2228 of file file.c.

References args, chown(), and rb_sys_fail_path.

Referenced by rb_file_s_chown().

static VALUE copy_home_path ( VALUE  result,
const char *  dir 
) [static]

Definition at line 2976 of file file.c.

References buf, Inc, rb_enc_associate(), rb_filesystem_encoding(), rb_str_resize(), RSTRING_PTR, and strlen().

Referenced by rb_default_home_dir(), and rb_home_dir_of().

static VALUE copy_path_class ( VALUE  path,
VALUE  orig 
) [static]

Definition at line 5419 of file file.c.

References OBJ_FREEZE, rb_obj_class(), RBASIC_SET_CLASS, and str_shrink().

Referenced by rb_find_file_ext_safe(), and rb_find_file_safe().

static void define_filetest_function ( const char *  name,
VALUE(*)(ANYARGS)  func,
int  argc 
) [static]

Definition at line 5561 of file file.c.

References rb_define_module_function(), and rb_define_singleton_method().

Referenced by Init_File().

int eaccess ( const char *  path,
int  mode 
)

Definition at line 1146 of file file.c.

References access, getegid(), geteuid(), getgid(), getuid(), rb_group_member(), rb_uid_t, S_IXUGO, stat, STAT, and X_OK.

Referenced by dln_find_1(), rb_file_executable_p(), rb_file_readable_p(), and rb_file_writable_p().

static VALUE file_expand_path_1 ( VALUE  fname  )  [static]

Definition at line 3415 of file file.c.

References EXPAND_PATH_BUFFER, Qnil, and rb_file_expand_path_internal().

Referenced by rb_find_file_ext_safe(), and rb_find_file_safe().

static VALUE file_inspect_join ( VALUE  ary,
VALUE  argp,
int  recur 
) [static]

Definition at line 4097 of file file.c.

References rb_eArgError, rb_file_join(), rb_raise(), and VALUE.

Referenced by rb_file_join().

static VALUE file_path_convert ( VALUE  name  )  [static]

Definition at line 146 of file file.c.

References ENCODING_GET, NULL, rb_ascii8bit_encoding(), rb_default_internal_encoding(), rb_enc_from_index(), rb_enc_str_asciionly_p(), rb_filesystem_encoding(), rb_str_conv_enc(), and rb_usascii_encoding().

Referenced by rb_get_path_check_convert().

int flock ( int  ,
int   
)

Definition at line 125 of file flock.c.

Referenced by rb_thread_flock().

static struct stat* get_stat ( VALUE  self  )  [static]

Definition at line 387 of file file.c.

References rb_eTypeError, rb_raise(), stat, stat_data_type, and TypedData_Get_Struct.

Referenced by rb_stat_atime(), rb_stat_b(), rb_stat_blksize(), rb_stat_blocks(), rb_stat_c(), rb_stat_cmp(), rb_stat_ctime(), rb_stat_d(), rb_stat_dev(), rb_stat_dev_major(), rb_stat_dev_minor(), rb_stat_f(), rb_stat_ftype(), rb_stat_gid(), rb_stat_grpowned(), rb_stat_ino(), rb_stat_l(), rb_stat_mode(), rb_stat_mtime(), rb_stat_nlink(), rb_stat_owned(), rb_stat_p(), rb_stat_R(), rb_stat_r(), rb_stat_rdev(), rb_stat_rdev_major(), rb_stat_rdev_minor(), rb_stat_rowned(), rb_stat_s(), rb_stat_S(), rb_stat_sgid(), rb_stat_size(), rb_stat_sticky(), rb_stat_suid(), rb_stat_uid(), rb_stat_W(), rb_stat_w(), rb_stat_wr(), rb_stat_ww(), rb_stat_X(), rb_stat_x(), and rb_stat_z().

void Init_File ( void   ) 

Definition at line 5614 of file file.c.

References define_filetest_function(), INT2FIX, LOCK_EX, LOCK_NB, LOCK_SH, LOCK_UN, O_BINARY, O_NONBLOCK, PATH_SEP, Qnil, rb_cIO, rb_cObject, rb_define_alloc_func(), rb_define_class(), rb_define_class_under(), rb_define_const(), rb_define_global_function(), rb_define_method(), rb_define_module(), rb_define_module_under(), rb_define_singleton_method(), rb_f_test(), rb_file_atime(), rb_file_blockdev_p(), rb_file_chardev_p(), rb_file_chmod(), rb_file_chown(), rb_file_ctime(), rb_file_directory_p(), rb_file_executable_p(), rb_file_executable_real_p(), rb_file_exist_p(), rb_file_exists_p(), rb_file_file_p(), rb_file_flock(), rb_file_grpowned_p(), rb_file_identical_p(), rb_file_lstat(), rb_file_mtime(), rb_file_owned_p(), rb_file_path(), rb_file_pipe_p(), rb_file_readable_p(), rb_file_readable_real_p(), rb_file_s_absolute_path(), rb_file_s_atime(), rb_file_s_basename(), rb_file_s_chmod(), rb_file_s_chown(), rb_file_s_ctime(), rb_file_s_dirname(), rb_file_s_expand_path(), rb_file_s_extname(), rb_file_s_ftype(), rb_file_s_join(), rb_file_s_lchmod, rb_file_s_lchown, rb_file_s_link, rb_file_s_lstat(), rb_file_s_mtime(), rb_file_s_path(), rb_file_s_readlink, rb_file_s_realdirpath(), rb_file_s_realpath(), rb_file_s_rename(), rb_file_s_size(), rb_file_s_split(), rb_file_s_stat(), rb_file_s_symlink, rb_file_s_truncate, rb_file_s_umask(), rb_file_s_unlink(), rb_file_s_utime(), rb_file_sgid_p(), rb_file_size(), rb_file_size_p(), rb_file_socket_p(), rb_file_sticky_p(), rb_file_suid_p(), rb_file_symlink_p(), rb_file_truncate, rb_file_world_readable_p(), rb_file_world_writable_p(), rb_file_writable_p(), rb_file_writable_real_p(), rb_file_zero_p(), rb_include_module(), rb_io_stat(), rb_mComparable, rb_obj_freeze(), rb_stat_atime(), rb_stat_b(), rb_stat_blksize(), rb_stat_blocks(), rb_stat_c(), rb_stat_cmp(), rb_stat_ctime(), rb_stat_d(), rb_stat_dev(), rb_stat_dev_major(), rb_stat_dev_minor(), rb_stat_f(), rb_stat_ftype(), rb_stat_gid(), rb_stat_grpowned(), rb_stat_init(), rb_stat_init_copy(), rb_stat_ino(), rb_stat_inspect(), rb_stat_l(), rb_stat_mode(), rb_stat_mtime(), rb_stat_nlink(), rb_stat_owned(), rb_stat_p(), rb_stat_r(), rb_stat_R(), rb_stat_rdev(), rb_stat_rdev_major(), rb_stat_rdev_minor(), rb_stat_s(), rb_stat_S(), rb_stat_s_alloc(), rb_stat_sgid(), rb_stat_size(), rb_stat_sticky(), rb_stat_suid(), rb_stat_uid(), rb_stat_w(), rb_stat_W(), rb_stat_wr(), rb_stat_ww(), rb_stat_x(), rb_stat_X(), rb_stat_z(), rb_str_new2, and rb_usascii_str_new2.

Referenced by Init_IO().

static int is_explicit_relative ( const char *  path  )  [static]

Definition at line 5411 of file file.c.

References isdirsep.

Referenced by rb_find_file_ext_safe(), and rb_find_file_safe().

NORETURN ( static void   sys_fail2(VALUE, VALUE)  ) 

static int path_check_0 ( VALUE  path,
int  execpath 
) [static]

Definition at line 5305 of file file.c.

References access, if(), my_getcwd, PRI_MODET_PREFIX, rb_enc_get(), RB_GC_GUARD, rb_is_absolute_path(), rb_str_cat2(), rb_str_new2, rb_warn(), RSTRING_LEN, RSTRING_PTR, S_ISDIR, S_IWOTH, STAT, stat, StringValueCStr, strrdirsep, VALUE, W_OK, and xfree.

Referenced by rb_path_check().

VALUE rb_default_home_dir ( VALUE  result  ) 

Definition at line 3018 of file file.c.

References copy_home_path(), getenv, rb_eArgError, and rb_raise().

Referenced by dir_s_home(), and rb_file_expand_path_internal().

char* rb_enc_path_end ( const char *  path,
const char *  end,
rb_encoding enc 
)

Definition at line 2928 of file file.c.

References chompdirsep(), and isdirsep.

Referenced by check_dirname().

char* rb_enc_path_last_separator ( const char *  path,
const char *  end,
rb_encoding enc 
)

Definition at line 2894 of file file.c.

References Inc, isdirsep, last, and NULL.

Referenced by ruby_init_loadpath_safe().

char* rb_enc_path_next ( const char *  s,
const char *  e,
rb_encoding enc 
)

Definition at line 2846 of file file.c.

References Inc, and isdirsep.

Referenced by rb_enc_path_skip_prefix(), and realpath_rec().

char* rb_enc_path_skip_prefix ( const char *  path,
const char *  end,
rb_encoding enc 
)

Definition at line 2860 of file file.c.

References isdirsep, and rb_enc_path_next().

Referenced by check_dirname(), and ruby_glob0().

static VALUE rb_f_test ( int  argc,
VALUE *  argv 
) [static]

Definition at line 4499 of file file.c.

References CHECK, FilePathValue, ISPRINT, NUM2CHR, Qfalse, Qtrue, rb_check_arity, rb_eArgError, rb_file_blockdev_p(), rb_file_chardev_p(), rb_file_directory_p(), rb_file_executable_p(), rb_file_executable_real_p(), rb_file_exist_p(), rb_file_file_p(), rb_file_grpowned_p(), rb_file_identical_p(), rb_file_owned_p(), rb_file_pipe_p(), rb_file_readable_p(), rb_file_readable_real_p(), rb_file_rowned_p(), rb_file_sgid_p(), rb_file_size_p(), rb_file_socket_p(), rb_file_sticky_p(), rb_file_suid_p(), rb_file_symlink_p(), rb_file_writable_p(), rb_file_writable_real_p(), rb_file_zero_p(), rb_raise(), rb_stat(), rb_sys_fail_path, stat, stat_atime(), stat_ctime(), stat_mtime(), strchr(), and VALUE.

Referenced by Init_File().

VALUE rb_file_absolute_path ( VALUE  fname,
VALUE  dname 
)

Definition at line 3475 of file file.c.

References check_expand_path_args, expand_path, and EXPAND_PATH_BUFFER.

Referenced by rb_f_require_relative(), and rb_file_s_absolute_path().

static VALUE rb_file_atime ( VALUE  obj  )  [static]

Definition at line 1972 of file file.c.

References rb_io_t::fd, fstat, GetOpenFile, rb_io_t::pathv, rb_sys_fail_path, stat, and stat_atime().

Referenced by Init_File().

static VALUE rb_file_blockdev_p ( VALUE  obj,
VALUE  fname 
) [static]

Definition at line 1337 of file file.c.

References Qfalse, Qtrue, rb_stat(), S_ISBLK, and stat.

Referenced by Init_File(), and rb_f_test().

static VALUE rb_file_chardev_p ( VALUE  obj,
VALUE  fname 
) [static]

Definition at line 1366 of file file.c.

References Qfalse, Qtrue, rb_stat(), S_ISCHR, and stat.

Referenced by Init_File(), and rb_f_test().

static VALUE rb_file_chmod ( VALUE  obj,
VALUE  vmode 
) [static]

Definition at line 2161 of file file.c.

References rb_io_t::fd, GetOpenFile, INT2FIX, NIL_P, NUM2INT, rb_io_t::pathv, Qnil, rb_secure(), rb_str_encode_ospath(), rb_sys_fail_path, RSTRING_PTR, and VALUE.

Referenced by Init_File().

static VALUE rb_file_chown ( VALUE  obj,
VALUE  owner,
VALUE  group 
) [static]

Definition at line 2292 of file file.c.

References chown(), rb_io_t::fd, GetOpenFile, INT2FIX, NIL_P, NUM2INT, rb_io_t::pathv, Qnil, rb_secure(), rb_str_encode_ospath(), rb_sys_fail_path, RSTRING_PTR, and VALUE.

Referenced by Init_File().

void rb_file_const ( const char *  name,
VALUE  value 
)

Definition at line 5275 of file file.c.

References rb_define_const().

Referenced by Init_Dir().

static VALUE rb_file_ctime ( VALUE  obj  )  [static]

Definition at line 2073 of file file.c.

References rb_io_t::fd, fstat, GetOpenFile, rb_io_t::pathv, rb_sys_fail_path, stat, and stat_ctime().

Referenced by Init_File().

VALUE rb_file_directory_p ( VALUE  obj,
VALUE  fname 
)

Definition at line 1215 of file file.c.

References Qfalse, Qtrue, rb_stat(), S_ISDIR, and stat.

Referenced by Init_Dir(), Init_File(), rb_dir_exists_p(), and rb_f_test().

VALUE rb_file_dirname ( VALUE  fname  ) 

Definition at line 3910 of file file.c.

References FilePathStringValue, isdirsep, name, OBJ_INFECT, rb_enc_copy(), rb_enc_get(), rb_str_cat(), rb_str_new(), rb_usascii_str_new2, RSTRING_LEN, skipprefix, skiproot(), StringValueCStr, strrdirsep, top, and VALUE.

Referenced by f_current_dirname(), rb_f_require_relative(), and rb_file_s_dirname().

static VALUE rb_file_executable_p ( VALUE  obj,
VALUE  fname 
) [static]

Definition at line 1566 of file file.c.

References eaccess(), FilePathValue, Qfalse, Qtrue, rb_secure(), rb_str_encode_ospath(), StringValueCStr, and X_OK.

Referenced by Init_File(), and rb_f_test().

static VALUE rb_file_executable_real_p ( VALUE  obj,
VALUE  fname 
) [static]

Definition at line 1584 of file file.c.

References access, FilePathValue, Qfalse, Qtrue, rb_secure(), rb_str_encode_ospath(), StringValueCStr, and X_OK.

Referenced by Init_File(), and rb_f_test().

static VALUE rb_file_exist_p ( VALUE  obj,
VALUE  fname 
) [static]

Definition at line 1393 of file file.c.

References Qfalse, Qtrue, rb_stat(), and stat.

Referenced by Init_File(), rb_f_test(), and rb_file_exists_p().

static VALUE rb_file_exists_p ( VALUE  obj,
VALUE  fname 
) [static]

Definition at line 1402 of file file.c.

References rb_class_inherited_p(), rb_file_exist_p(), RB_TYPE_P, rb_warning(), RTEST, and T_CLASS.

Referenced by Init_File().

VALUE rb_file_expand_path ( VALUE  fname,
VALUE  dname 
)

Definition at line 3421 of file file.c.

References check_expand_path_args, expand_path, and EXPAND_PATH_BUFFER.

Referenced by expand_include_path(), rb_file_identical_p(), and rb_file_s_expand_path().

VALUE rb_file_expand_path_fast ( VALUE  fname,
VALUE  dname 
)

Definition at line 3428 of file file.c.

References expand_path, and EXPAND_PATH_BUFFER.

Referenced by rb_construct_expanded_load_path(), and rb_feature_provided().

VALUE rb_file_expand_path_internal ( VALUE  fname,
VALUE  dname,
int  abs_mode,
int  long_name,
VALUE  result 
)

Definition at line 3054 of file file.c.

Referenced by file_expand_path_1(), rb_file_expand_path_internal(), rb_find_file_ext_safe(), and rb_find_file_safe().

static VALUE rb_file_file_p ( VALUE  obj,
VALUE  fname 
) [static]

Definition at line 1608 of file file.c.

References Qfalse, Qtrue, rb_stat(), S_ISREG, and stat.

Referenced by Init_File(), and rb_f_test().

static VALUE rb_file_flock ( VALUE  obj,
VALUE  operation 
) [static]

Definition at line 4380 of file file.c.

References errno, EWOULDBLOCK, rb_io_t::fd, FMODE_WRITABLE, GetOpenFile, INT2FIX, LOCK_NB, rb_io_t::mode, NUM2INT, rb_io_t::pathv, Qfalse, rb_io_check_closed(), rb_io_flush_raw(), rb_secure(), rb_sys_fail_path, rb_thread_flock(), rb_thread_io_blocking_region(), rb_thread_wait_for(), timeval::tv_sec, and timeval::tv_usec.

Referenced by Init_File().

static VALUE rb_file_ftype ( const struct stat *  st  )  [static]

Definition at line 1866 of file file.c.

References rb_usascii_str_new2, S_ISBLK, S_ISCHR, S_ISDIR, S_ISLNK, and S_ISREG.

Referenced by rb_file_s_ftype(), and rb_stat_ftype().

static VALUE rb_file_grpowned_p ( VALUE  obj,
VALUE  fname 
) [static]

Definition at line 1700 of file file.c.

References Qfalse, Qtrue, rb_group_member(), rb_stat(), and stat.

Referenced by Init_File(), and rb_f_test().

static VALUE rb_file_identical_p ( VALUE  obj,
VALUE  fname1,
VALUE  fname2 
) [static]

Definition at line 1797 of file file.c.

References access, FilePathValue, Qfalse, Qnil, Qtrue, rb_file_expand_path(), rb_memcicmp(), rb_secure(), rb_stat(), rb_str_encode_ospath(), rb_str_new4, RSTRING_LEN, RSTRING_PTR, and stat.

Referenced by Init_File(), and rb_f_test().

static VALUE rb_file_join ( VALUE  ary,
VALUE  sep 
) [static]

Definition at line 4105 of file file.c.

References args, check_path_encoding(), chompdirsep(), FALSE, file_inspect_join(), FilePathStringValue, isdirsep, name, NIL_P, OBJ_INFECT, RARRAY_AREF, RARRAY_LEN, rb_cString, rb_eArgError, rb_enc_associate(), rb_enc_check(), rb_enc_copy(), rb_enc_get(), rb_exec_recursive(), rb_raise(), rb_str_buf_append(), rb_str_buf_new(), rb_str_new(), rb_str_set_len(), RB_TYPE_P, RBASIC_CLEAR_CLASS, RBASIC_SET_CLASS_RAW, RSTRING_GETMEM, RSTRING_LEN, RSTRING_PTR, StringValue, StringValueCStr, T_ARRAY, T_STRING, tail, TRUE, TYPE, and VALUE.

Referenced by file_inspect_join(), and rb_file_s_join().

int rb_file_load_ok ( const char *  path  ) 

Definition at line 5391 of file file.c.

Referenced by rb_f_load(), rb_find_file_ext_safe(), and rb_find_file_safe().

static VALUE rb_file_lstat ( VALUE  obj  )  [static]

Definition at line 1069 of file file.c.

References GetOpenFile, lstat, NIL_P, rb_io_t::pathv, Qnil, rb_io_stat(), rb_secure(), rb_stat_new(), rb_str_encode_ospath(), rb_sys_fail_path, RSTRING_PTR, stat, and VALUE.

Referenced by Init_File().

static VALUE rb_file_mtime ( VALUE  obj  )  [static]

Definition at line 2019 of file file.c.

References rb_io_t::fd, fstat, GetOpenFile, rb_io_t::pathv, rb_sys_fail_path, stat, and stat_mtime().

Referenced by Init_File().

static VALUE rb_file_owned_p ( VALUE  obj,
VALUE  fname 
) [static]

Definition at line 1669 of file file.c.

References geteuid(), Qfalse, Qtrue, rb_stat(), and stat.

Referenced by Init_File(), and rb_f_test().

static VALUE rb_file_path ( VALUE  obj  )  [static]

Definition at line 346 of file file.c.

References NIL_P, rb_io_t::pathv, Qnil, rb_io_check_initialized(), rb_io_taint_check(), rb_obj_taint(), rb_str_dup(), and RFILE.

Referenced by Init_File().

static VALUE rb_file_pipe_p ( VALUE  obj,
VALUE  fname 
) [static]

Definition at line 1238 of file file.c.

References Qfalse, Qtrue, rb_stat(), and stat.

Referenced by Init_File(), and rb_f_test().

static VALUE rb_file_readable_p ( VALUE  obj,
VALUE  fname 
) [static]

Definition at line 1426 of file file.c.

References eaccess(), FilePathValue, Qfalse, Qtrue, R_OK, rb_secure(), rb_str_encode_ospath(), and StringValueCStr.

Referenced by Init_File(), and rb_f_test().

static VALUE rb_file_readable_real_p ( VALUE  obj,
VALUE  fname 
) [static]

Definition at line 1444 of file file.c.

References access, FilePathValue, Qfalse, Qtrue, R_OK, rb_secure(), rb_str_encode_ospath(), and StringValueCStr.

Referenced by Init_File(), and rb_f_test().

static VALUE rb_file_rowned_p ( VALUE  obj,
VALUE  fname 
) [static]

Definition at line 1679 of file file.c.

References getuid(), Qfalse, Qtrue, rb_stat(), and stat.

Referenced by rb_f_test().

VALUE rb_file_s_absolute_path ( int  argc,
VALUE *  argv 
)

Definition at line 3495 of file file.c.

References Qnil, rb_file_absolute_path(), rb_scan_args(), and VALUE.

Referenced by Init_File().

static VALUE rb_file_s_atime ( VALUE  klass,
VALUE  fname 
) [static]

Definition at line 1949 of file file.c.

References FilePathValue, rb_stat(), rb_sys_fail_path, stat, and stat_atime().

Referenced by Init_File().

static VALUE rb_file_s_basename ( int  argc,
VALUE *  argv 
) [static]

Definition at line 3850 of file file.c.

References check_path_encoding(), FilePathStringValue, name, NIL_P, OBJ_INFECT, Qnil, rb_enc_compatible(), rb_enc_copy(), rb_enc_get(), RB_GC_GUARD, rb_scan_args(), rb_str_new(), rb_str_new_shared(), rmext(), RSTRING_LEN, RSTRING_PTR, ruby_enc_find_basename(), StringValue, StringValueCStr, and VALUE.

Referenced by Init_File(), and rb_file_s_split().

static VALUE rb_file_s_chmod ( int  argc,
VALUE *  argv 
) [static]

Definition at line 2132 of file file.c.

References apply2files(), chmod_internal(), LONG2FIX, NUM2INT, rb_scan_args(), rb_secure(), and VALUE.

Referenced by Init_File().

static VALUE rb_file_s_chown ( int  argc,
VALUE *  argv 
) [static]

Definition at line 2251 of file file.c.

References apply2files(), chown_internal(), chown_args::group, LONG2FIX, NIL_P, NUM2GIDT, NUM2UIDT, chown_args::owner, rb_scan_args(), rb_secure(), and VALUE.

Referenced by Init_File().

static VALUE rb_file_s_ctime ( VALUE  klass,
VALUE  fname 
) [static]

Definition at line 2048 of file file.c.

References FilePathValue, rb_stat(), rb_sys_fail_path, stat, and stat_ctime().

Referenced by Init_File().

static VALUE rb_file_s_dirname ( VALUE  klass,
VALUE  fname 
) [static]

Definition at line 3904 of file file.c.

References rb_file_dirname().

Referenced by Init_File(), and rb_file_s_split().

VALUE rb_file_s_expand_path ( int  argc,
VALUE *  argv 
)

Definition at line 3462 of file file.c.

References Qnil, rb_file_expand_path(), rb_scan_args(), and VALUE.

Referenced by Init_File().

static VALUE rb_file_s_extname ( VALUE  klass,
VALUE  fname 
) [static]

Definition at line 4040 of file file.c.

References FilePathStringValue, name, OBJ_INFECT, rb_enc_get(), rb_str_new(), rb_str_subseq(), RSTRING_LEN, ruby_enc_find_extname(), StringValueCStr, and VALUE.

Referenced by Init_File().

static VALUE rb_file_s_ftype ( VALUE  klass,
VALUE  fname 
) [static]

Definition at line 1922 of file file.c.

References FilePathValue, lstat, rb_file_ftype(), rb_secure(), rb_str_encode_ospath(), rb_sys_fail_path, stat, and StringValueCStr.

Referenced by Init_File().

static VALUE rb_file_s_join ( VALUE  klass,
VALUE  args 
) [static]

Definition at line 4192 of file file.c.

References rb_file_join().

Referenced by Init_File().

static VALUE rb_file_s_lstat ( VALUE  klass,
VALUE  fname 
) [static]

Definition at line 1037 of file file.c.

References FilePathValue, lstat, rb_file_s_stat(), rb_secure(), rb_stat_new(), rb_str_encode_ospath(), rb_sys_fail_path, stat, and StringValueCStr.

Referenced by Init_File().

static VALUE rb_file_s_mtime ( VALUE  klass,
VALUE  fname 
) [static]

Definition at line 1997 of file file.c.

References FilePathValue, rb_stat(), rb_sys_fail_path, stat, and stat_mtime().

Referenced by Init_File().

static VALUE rb_file_s_path ( VALUE  klass,
VALUE  fname 
) [static]

Definition at line 4069 of file file.c.

References rb_get_path().

Referenced by Init_File().

static VALUE rb_file_s_realdirpath ( int  argc,
VALUE *  argv,
VALUE  klass 
) [static]

Definition at line 3728 of file file.c.

References rb_realpath_internal(), rb_scan_args(), and VALUE.

Referenced by Init_File().

static VALUE rb_file_s_realpath ( int  argc,
VALUE *  argv,
VALUE  klass 
) [static]

Definition at line 3708 of file file.c.

References rb_realpath_internal(), rb_scan_args(), and VALUE.

Referenced by Init_File().

static VALUE rb_file_s_rename ( VALUE  klass,
VALUE  from,
VALUE  to 
) [static]

Definition at line 2673 of file file.c.

References errno, FilePathValue, INT2FIX, rb_secure(), rb_str_encode_ospath(), StringValueCStr, sys_fail2(), and VALUE.

Referenced by Init_File().

static VALUE rb_file_s_size ( VALUE  klass,
VALUE  fname 
) [static]

Definition at line 1854 of file file.c.

References FilePathValue, OFFT2NUM, rb_stat(), rb_sys_fail_path, and stat.

Referenced by Init_File().

static VALUE rb_file_s_split ( VALUE  klass,
VALUE  path 
) [static]

Definition at line 4086 of file file.c.

References FilePathStringValue, Qnil, rb_assoc_new(), rb_file_s_basename(), and rb_file_s_dirname().

Referenced by Init_File().

static VALUE rb_file_s_stat ( VALUE  klass,
VALUE  fname 
) [static]

Definition at line 983 of file file.c.

References FilePathValue, rb_stat(), rb_stat_new(), rb_sys_fail_path, and stat.

Referenced by Init_File(), and rb_file_s_lstat().

static VALUE rb_file_s_umask ( int  argc,
VALUE *  argv 
) [static]

Definition at line 2723 of file file.c.

References INT2FIX, NUM2INT, rb_check_arity, rb_secure(), and umask().

Referenced by Init_File().

static VALUE rb_file_s_unlink ( VALUE  klass,
VALUE  args 
) [static]

Definition at line 2653 of file file.c.

References apply2files(), LONG2FIX, rb_secure(), and unlink_internal().

Referenced by Init_File().

static VALUE rb_file_s_utime ( int  argc,
VALUE *  argv 
) [static]

Definition at line 2481 of file file.c.

References apply2files(), args, LONG2FIX, NIL_P, NULL, rb_scan_args(), rb_secure(), rb_time_timespec(), utime_internal(), and VALUE.

Referenced by Init_File().

static VALUE rb_file_sgid_p ( VALUE  obj,
VALUE  fname 
) [static]

Definition at line 1751 of file file.c.

References Qfalse.

Referenced by Init_File(), and rb_f_test().

static VALUE rb_file_size ( VALUE  obj  )  [static]

Definition at line 2096 of file file.c.

References rb_io_t::fd, FMODE_WRITABLE, fstat, GetOpenFile, rb_io_t::mode, OFFT2NUM, rb_io_t::pathv, rb_io_flush_raw(), rb_sys_fail_path, and stat.

Referenced by Init_File().

static VALUE rb_file_size_p ( VALUE  obj,
VALUE  fname 
) [static]

Definition at line 1648 of file file.c.

References OFFT2NUM, Qnil, rb_stat(), and stat.

Referenced by Init_File(), and rb_f_test().

static VALUE rb_file_socket_p ( VALUE  obj,
VALUE  fname 
) [static]

Definition at line 1301 of file file.c.

References Qfalse, Qtrue, rb_stat(), and stat.

Referenced by Init_File(), and rb_f_test().

static VALUE rb_file_sticky_p ( VALUE  obj,
VALUE  fname 
) [static]

Definition at line 1768 of file file.c.

References Qnil.

Referenced by Init_File(), and rb_f_test().

static VALUE rb_file_suid_p ( VALUE  obj,
VALUE  fname 
) [static]

Definition at line 1734 of file file.c.

References Qfalse.

Referenced by Init_File(), and rb_f_test().

static VALUE rb_file_symlink_p ( VALUE  obj,
VALUE  fname 
) [static]

Definition at line 1262 of file file.c.

References FilePathValue, lstat, Qfalse, Qtrue, rb_secure(), rb_str_encode_ospath(), S_ISLNK, stat, and StringValueCStr.

Referenced by Init_File(), and rb_f_test().

static VALUE rb_file_world_readable_p ( VALUE  obj,
VALUE  fname 
) [static]

Definition at line 1478 of file file.c.

References Qnil, rb_stat(), S_IROTH, S_IRUGO, S_IWUGO, S_IXUGO, stat, and UINT2NUM.

Referenced by Init_File().

static VALUE rb_file_world_writable_p ( VALUE  obj,
VALUE  fname 
) [static]

Definition at line 1544 of file file.c.

References Qnil, rb_stat(), S_IRUGO, S_IWOTH, S_IWUGO, S_IXUGO, stat, and UINT2NUM.

Referenced by Init_File().

static VALUE rb_file_writable_p ( VALUE  obj,
VALUE  fname 
) [static]

Definition at line 1500 of file file.c.

References eaccess(), FilePathValue, Qfalse, Qtrue, rb_secure(), rb_str_encode_ospath(), StringValueCStr, and W_OK.

Referenced by Init_File(), and rb_f_test().

static VALUE rb_file_writable_real_p ( VALUE  obj,
VALUE  fname 
) [static]

Definition at line 1518 of file file.c.

References access, FilePathValue, Qfalse, Qtrue, rb_secure(), rb_str_encode_ospath(), StringValueCStr, and W_OK.

Referenced by Init_File(), and rb_f_test().

static VALUE rb_file_zero_p ( VALUE  obj,
VALUE  fname 
) [static]

Definition at line 1628 of file file.c.

References Qfalse, Qtrue, rb_stat(), and stat.

Referenced by Init_File(), and rb_f_test().

VALUE rb_find_file ( VALUE  path  ) 

Definition at line 5499 of file file.c.

References rb_find_file_safe(), and rb_safe_level.

Referenced by rb_f_load(), and rb_load().

int rb_find_file_ext ( VALUE *  filep,
const char *const *  ext 
)

Definition at line 5428 of file file.c.

References rb_find_file_ext_safe(), and rb_safe_level.

int rb_find_file_ext_safe ( VALUE *  filep,
const char *const *  ext,
int  safe_level 
)

Definition at line 5434 of file file.c.

References copy_path_class(), file_expand_path_1(), FL_TAINT, FL_UNSET, fpath_check, is_explicit_relative(), MAXPATHLEN, OBJ_TAINTED, RARRAY_AREF, RARRAY_LEN, rb_enc_associate_index(), rb_eSecurityError, rb_file_expand_path_internal(), rb_file_load_ok(), RB_GC_GUARD, rb_get_expanded_load_path(), rb_get_path_check(), rb_is_absolute_path(), rb_raise(), rb_str_cat2(), rb_str_dup(), rb_str_set_len(), rb_str_tmp_new(), rb_usascii_encindex, RBASIC_CLEAR_CLASS, RSTRING_LEN, RSTRING_PTR, StringValueCStr, and VALUE.

Referenced by rb_find_file_ext(), and search_required().

VALUE rb_find_file_safe ( VALUE  path,
int  safe_level 
)

Definition at line 5505 of file file.c.

References copy_path_class(), file_expand_path_1(), fpath_check, is_explicit_relative(), MAXPATHLEN, OBJ_TAINTED, RARRAY_AREF, RARRAY_LEN, rb_enc_associate_index(), rb_eSecurityError, rb_file_expand_path_internal(), rb_file_load_ok(), RB_GC_GUARD, rb_get_expanded_load_path(), rb_get_path_check(), rb_is_absolute_path(), rb_raise(), rb_str_tmp_new(), rb_usascii_encindex, RSTRING_LEN, RSTRING_PTR, StringValueCStr, and VALUE.

Referenced by rb_find_file(), and search_required().

VALUE rb_get_path ( VALUE  obj  ) 

Definition at line 225 of file file.c.

References rb_get_path_check(), and rb_safe_level.

Referenced by apply2files(), rb_feature_provided(), and rb_file_s_path().

static VALUE rb_get_path_check ( VALUE  obj,
int  level 
) [static]

Definition at line 212 of file file.c.

References rb_get_path_check_convert(), rb_get_path_check_to_string(), and VALUE.

Referenced by rb_find_file_ext_safe(), rb_find_file_safe(), rb_get_path(), and rb_get_path_no_checksafe().

VALUE rb_get_path_check_convert ( VALUE  obj,
VALUE  tmp,
int  level 
)

Definition at line 198 of file file.c.

References check_path_encoding(), file_path_convert(), insecure_obj_p, rb_insecure_operation(), rb_str_new4, and StringValueCStr.

Referenced by rb_construct_expanded_load_path(), and rb_get_path_check().

VALUE rb_get_path_check_to_string ( VALUE  obj,
int  level 
)

Definition at line 176 of file file.c.

References CONST_ID, insecure_obj_p, Qundef, rb_check_funcall(), rb_insecure_operation(), RB_TYPE_P, StringValue, T_STRING, and VALUE.

Referenced by rb_construct_expanded_load_path(), and rb_get_path_check().

VALUE rb_get_path_no_checksafe ( VALUE  obj  ) 

Definition at line 219 of file file.c.

References rb_get_path_check().

static int rb_group_member ( GETGROUPS_T  gid  )  [static]

Definition at line 1090 of file file.c.

References ALLOCV_END, ALLOCV_N, FALSE, getegid(), getgid(), GETGROUPS_T, RB_MAX_GROUPS, TRUE, and VALUE.

Referenced by eaccess(), rb_file_grpowned_p(), rb_stat_grpowned(), rb_stat_R(), rb_stat_W(), and rb_stat_X().

VALUE rb_home_dir_of ( VALUE  user,
VALUE  result 
)

Definition at line 3001 of file file.c.

References copy_home_path(), PRIsVALUE, rb_eArgError, rb_raise(), and RSTRING_PTR.

Referenced by dir_s_home(), and rb_file_expand_path_internal().

static VALUE rb_io_stat ( VALUE  obj  )  [static]

Definition at line 1010 of file file.c.

References rb_io_t::fd, fstat, GetOpenFile, rb_io_t::pathv, rb_stat_new(), rb_sys_fail_path, and stat.

Referenced by Init_File(), and rb_file_lstat().

int rb_is_absolute_path ( const char *  path  ) 

Definition at line 5281 of file file.c.

References isdirsep.

Referenced by path_check_0(), rb_construct_expanded_load_path(), rb_file_expand_path_internal(), rb_find_file_ext_safe(), and rb_find_file_safe().

int rb_path_check ( const char *  path  ) 

Definition at line 5360 of file file.c.

References path_check_0(), PATH_SEP_CHAR, rb_str_new(), strchr(), strlen(), and TRUE.

Referenced by path_tainted_p().

VALUE rb_realpath_internal ( VALUE  basedir,
VALUE  path,
int  strict 
)

Definition at line 3620 of file file.c.

References chompdirsep(), FilePathValue, Inc, NIL_P, NULL, OBJ_TAINT, Qnil, rb_dir_getwd(), rb_enc_get(), rb_hash_new(), rb_secure(), rb_str_dup_frozen, rb_str_set_len(), rb_str_subseq(), realpath_rec(), RSTRING_GETMEM, skipprefixroot(), and VALUE.

Referenced by iseq_s_compile_file(), rb_file_s_realdirpath(), rb_file_s_realpath(), rb_load_internal0(), and ruby_init_loadpath_safe().

static int rb_stat ( VALUE  file,
struct stat *  st 
) [static]

Definition at line 912 of file file.c.

References rb_io_t::fd, FilePathValue, fstat, GetOpenFile, NIL_P, rb_check_convert_type(), rb_secure(), rb_str_encode_ospath(), STAT, StringValueCStr, T_FILE, and VALUE.

Referenced by rb_f_test(), rb_file_blockdev_p(), rb_file_chardev_p(), rb_file_directory_p(), rb_file_exist_p(), rb_file_file_p(), rb_file_grpowned_p(), rb_file_identical_p(), rb_file_owned_p(), rb_file_pipe_p(), rb_file_rowned_p(), rb_file_s_atime(), rb_file_s_ctime(), rb_file_s_mtime(), rb_file_s_size(), rb_file_s_stat(), rb_file_size_p(), rb_file_socket_p(), rb_file_world_readable_p(), rb_file_world_writable_p(), and rb_file_zero_p().

static VALUE rb_stat_atime ( VALUE  self  )  [static]

Definition at line 797 of file file.c.

References get_stat(), and stat_atime().

Referenced by Init_File(), and rb_stat_inspect().

static VALUE rb_stat_b ( VALUE  obj  )  [static]

Definition at line 4826 of file file.c.

References get_stat(), Qfalse, Qtrue, and S_ISBLK.

Referenced by Init_File().

static VALUE rb_stat_blksize ( VALUE  self  )  [static]

Definition at line 679 of file file.c.

References get_stat(), Qnil, and ULONG2NUM.

Referenced by Init_File(), and rb_stat_inspect().

static VALUE rb_stat_blocks ( VALUE  self  )  [static]

Definition at line 700 of file file.c.

References get_stat(), Qnil, and ULONG2NUM.

Referenced by Init_File(), and rb_stat_inspect().

static VALUE rb_stat_c ( VALUE  obj  )  [static]

Definition at line 4848 of file file.c.

References get_stat(), Qfalse, Qtrue, and S_ISCHR.

Referenced by Init_File().

static VALUE rb_stat_cmp ( VALUE  self,
VALUE  other 
) [static]

Definition at line 413 of file file.c.

References get_stat(), INT2FIX, Qnil, rb_obj_class(), rb_obj_is_kind_of(), stat_mtimespec(), timespec::tv_nsec, and timespec::tv_sec.

Referenced by Init_File().

static VALUE rb_stat_ctime ( VALUE  self  )  [static]

Definition at line 833 of file file.c.

References get_stat(), and stat_ctime().

Referenced by Init_File(), and rb_stat_inspect().

static VALUE rb_stat_d ( VALUE  obj  )  [static]

Definition at line 4740 of file file.c.

References get_stat(), Qfalse, Qtrue, and S_ISDIR.

Referenced by Init_File().

static VALUE rb_stat_dev ( VALUE  self  )  [static]

Definition at line 452 of file file.c.

References DEVT2NUM, and get_stat().

Referenced by Init_File(), and rb_stat_inspect().

static VALUE rb_stat_dev_major ( VALUE  self  )  [static]

Definition at line 469 of file file.c.

References get_stat(), INT2NUM, major, and Qnil.

Referenced by Init_File().

static VALUE rb_stat_dev_minor ( VALUE  self  )  [static]

Definition at line 490 of file file.c.

References get_stat(), INT2NUM, minor, and Qnil.

Referenced by Init_File().

static VALUE rb_stat_f ( VALUE  obj  )  [static]

Definition at line 5167 of file file.c.

References get_stat(), Qfalse, Qtrue, and S_ISREG.

Referenced by Init_File().

static VALUE rb_stat_ftype ( VALUE  obj  )  [static]

Definition at line 4723 of file file.c.

References get_stat(), and rb_file_ftype().

Referenced by Init_File().

static VALUE rb_stat_gid ( VALUE  self  )  [static]

Definition at line 583 of file file.c.

References get_stat(), and GIDT2NUM.

Referenced by Init_File(), and rb_stat_inspect().

static VALUE rb_stat_grpowned ( VALUE  obj  )  [static]

Definition at line 4894 of file file.c.

References get_stat(), Qfalse, Qtrue, and rb_group_member().

Referenced by Init_File(), rb_stat_r(), rb_stat_w(), and rb_stat_x().

static VALUE rb_stat_init ( VALUE  obj,
VALUE  fname 
) [static]

Definition at line 4667 of file file.c.

References ALLOC, DATA_PTR, FilePathValue, NULL, Qnil, rb_secure(), rb_str_encode_ospath(), rb_sys_fail_path, STAT, stat, StringValueCStr, and xfree.

Referenced by Init_File().

static VALUE rb_stat_init_copy ( VALUE  copy,
VALUE  orig 
) [static]

Definition at line 4690 of file file.c.

References ALLOC, DATA_PTR, OBJ_INIT_COPY, stat, and xfree.

Referenced by Init_File().

static VALUE rb_stat_ino ( VALUE  self  )  [static]

Definition at line 510 of file file.c.

References get_stat(), and ULONG2NUM.

Referenced by Init_File(), and rb_stat_inspect().

static VALUE rb_stat_inspect ( VALUE  self  )  [static]

Definition at line 853 of file file.c.

References name, NUM2DEVT, NUM2ULONG, OBJ_INFECT, PRI_DEVT_PREFIX, rb_inspect(), rb_obj_classname(), rb_sprintf(), rb_stat_atime(), rb_stat_blksize(), rb_stat_blocks(), rb_stat_ctime(), rb_stat_dev(), rb_stat_gid(), rb_stat_ino(), rb_stat_mode(), rb_stat_mtime(), rb_stat_nlink(), rb_stat_rdev(), rb_stat_size(), rb_stat_uid(), rb_str_append(), rb_str_buf_cat2(), rb_str_buf_new2, rb_str_catf(), stat, stat_data_type, TypedData_Get_Struct, and VALUE.

Referenced by Init_File().

static VALUE rb_stat_l ( VALUE  obj  )  [static]

Definition at line 4782 of file file.c.

References get_stat(), Qfalse, Qtrue, and S_ISLNK.

Referenced by Init_File().

static VALUE rb_stat_mode ( VALUE  self  )  [static]

Definition at line 533 of file file.c.

References get_stat(), ST2UINT, and UINT2NUM.

Referenced by Init_File(), and rb_stat_inspect().

static VALUE rb_stat_mtime ( VALUE  self  )  [static]

Definition at line 813 of file file.c.

References get_stat(), and stat_mtime().

Referenced by Init_File(), and rb_stat_inspect().

VALUE rb_stat_new ( const struct stat *  st  ) 

Definition at line 381 of file file.c.

References stat_new_0().

Referenced by rb_file_lstat(), rb_file_s_lstat(), rb_file_s_stat(), and rb_io_stat().

static VALUE rb_stat_nlink ( VALUE  self  )  [static]

Definition at line 551 of file file.c.

References get_stat(), and UINT2NUM.

Referenced by Init_File(), and rb_stat_inspect().

static VALUE rb_stat_owned ( VALUE  obj  )  [static]

Definition at line 4868 of file file.c.

References get_stat(), geteuid(), Qfalse, and Qtrue.

Referenced by Init_File(), rb_stat_r(), rb_stat_w(), and rb_stat_x().

static VALUE rb_stat_p ( VALUE  obj  )  [static]

Definition at line 4755 of file file.c.

References get_stat(), Qfalse, and Qtrue.

Referenced by Init_File().

static VALUE rb_stat_R ( VALUE  obj  )  [static]

Definition at line 4947 of file file.c.

References get_stat(), getuid(), Qfalse, Qtrue, rb_group_member(), rb_stat_rowned(), S_IRGRP, S_IROTH, S_IRUSR, and stat.

Referenced by Init_File().

static VALUE rb_stat_r ( VALUE  obj  )  [static]

Definition at line 4914 of file file.c.

References get_stat(), geteuid(), Qfalse, Qtrue, rb_stat_grpowned(), rb_stat_owned(), S_IRGRP, S_IROTH, S_IRUSR, and stat.

Referenced by Init_File().

static VALUE rb_stat_rdev ( VALUE  self  )  [static]

Definition at line 601 of file file.c.

References DEVT2NUM, get_stat(), and Qnil.

Referenced by Init_File(), and rb_stat_inspect().

static VALUE rb_stat_rdev_major ( VALUE  self  )  [static]

Definition at line 622 of file file.c.

References DEVT2NUM, get_stat(), major, and Qnil.

Referenced by Init_File().

static VALUE rb_stat_rdev_minor ( VALUE  self  )  [static]

Definition at line 643 of file file.c.

References DEVT2NUM, get_stat(), minor, and Qnil.

Referenced by Init_File().

static VALUE rb_stat_rowned ( VALUE  obj  )  [static]

Definition at line 4875 of file file.c.

References get_stat(), getuid(), Qfalse, and Qtrue.

Referenced by rb_stat_R(), rb_stat_W(), and rb_stat_X().

static VALUE rb_stat_s ( VALUE  obj  )  [static]

Definition at line 5202 of file file.c.

References get_stat(), off_t, OFFT2NUM, and Qnil.

Referenced by Init_File().

static VALUE rb_stat_S ( VALUE  obj  )  [static]

Definition at line 4803 of file file.c.

References get_stat(), Qfalse, and Qtrue.

Referenced by Init_File().

static VALUE rb_stat_s_alloc ( VALUE  klass  )  [static]

Definition at line 4652 of file file.c.

References stat_new_0().

Referenced by Init_File().

static VALUE rb_stat_sgid ( VALUE  obj  )  [static]

Definition at line 5243 of file file.c.

References get_stat(), Qfalse, and Qtrue.

Referenced by Init_File().

static VALUE rb_stat_size ( VALUE  self  )  [static]

Definition at line 662 of file file.c.

References get_stat(), and OFFT2NUM.

Referenced by Init_File(), and rb_stat_inspect().

static VALUE rb_stat_sticky ( VALUE  obj  )  [static]

Definition at line 5264 of file file.c.

References get_stat(), Qfalse, and Qtrue.

Referenced by Init_File().

static VALUE rb_stat_suid ( VALUE  obj  )  [static]

Definition at line 5222 of file file.c.

References get_stat(), Qfalse, and Qtrue.

Referenced by Init_File().

static VALUE rb_stat_uid ( VALUE  self  )  [static]

Definition at line 567 of file file.c.

References get_stat(), and UIDT2NUM.

Referenced by Init_File(), and rb_stat_inspect().

static VALUE rb_stat_W ( VALUE  obj  )  [static]

Definition at line 5039 of file file.c.

References get_stat(), getuid(), Qfalse, Qtrue, rb_group_member(), rb_stat_rowned(), S_IWGRP, S_IWOTH, S_IWUSR, and stat.

Referenced by Init_File().

static VALUE rb_stat_w ( VALUE  obj  )  [static]

Definition at line 5006 of file file.c.

References get_stat(), geteuid(), Qfalse, Qtrue, rb_stat_grpowned(), rb_stat_owned(), S_IWGRP, S_IWOTH, S_IWUSR, and stat.

Referenced by Init_File().

static VALUE rb_stat_wr ( VALUE  obj  )  [static]

Definition at line 4982 of file file.c.

References get_stat(), Qnil, S_IROTH, S_IRUGO, S_IWUGO, S_IXUGO, and UINT2NUM.

Referenced by Init_File().

static VALUE rb_stat_ww ( VALUE  obj  )  [static]

Definition at line 5074 of file file.c.

References get_stat(), Qnil, S_IRUGO, S_IWOTH, S_IWUGO, S_IXUGO, and UINT2NUM.

Referenced by Init_File().

static VALUE rb_stat_X ( VALUE  obj  )  [static]

Definition at line 5132 of file file.c.

References get_stat(), getuid(), Qfalse, Qtrue, rb_group_member(), rb_stat_rowned(), S_IXGRP, S_IXOTH, S_IXUGO, S_IXUSR, and stat.

Referenced by Init_File().

static VALUE rb_stat_x ( VALUE  obj  )  [static]

Definition at line 5100 of file file.c.

References get_stat(), geteuid(), Qfalse, Qtrue, rb_stat_grpowned(), rb_stat_owned(), S_IXGRP, S_IXOTH, S_IXUGO, S_IXUSR, and stat.

Referenced by Init_File().

static VALUE rb_stat_z ( VALUE  obj  )  [static]

Definition at line 5185 of file file.c.

References get_stat(), Qfalse, and Qtrue.

Referenced by Init_File().

VALUE rb_str_encode_ospath ( VALUE  path  ) 

Definition at line 231 of file file.c.

References NULL, rb_ascii8bit_encoding(), rb_enc_get(), rb_filesystem_encoding(), rb_str_conv_enc(), and rb_utf8_encoding().

Referenced by apply2files(), check_dirname(), dir_initialize(), dir_s_chdir(), do_opendir(), load_file_internal(), rb_file_chmod(), rb_file_chown(), rb_file_executable_p(), rb_file_executable_real_p(), rb_file_expand_path_internal(), rb_file_identical_p(), rb_file_lstat(), rb_file_readable_p(), rb_file_readable_real_p(), rb_file_s_ftype(), rb_file_s_lstat(), rb_file_s_rename(), rb_file_symlink_p(), rb_file_writable_p(), rb_file_writable_real_p(), rb_require_safe(), rb_stat(), rb_stat_init(), rb_sysopen(), and realpath_rec().

static VALUE rb_thread_flock ( void *  data  )  [static]

Definition at line 4319 of file file.c.

References errno, flock(), and VALUE.

Referenced by rb_file_flock().

static void realpath_rec ( long *  prefixlenp,
VALUE *  resolvedp,
const char *  unresolved,
VALUE  loopcheck,
int  strict,
int  last 
) [static]

Definition at line 3508 of file file.c.

References CONST_ID, ELOOP, errno, ID2SYM, isdirsep, link(), lstat, NIL_P, Qnil, rb_enc_check(), rb_enc_get(), rb_enc_left_char_head, rb_enc_path_next(), RB_GC_GUARD, rb_hash_aref(), rb_hash_aset(), rb_str_cat(), rb_str_cat2(), rb_str_conv_enc(), rb_str_dup(), rb_str_dup_frozen, rb_str_encode_ospath(), rb_str_resize(), rb_str_subseq(), rb_sys_fail_path, RSTRING_LEN, RSTRING_PTR, S_ISLNK, skipprefixroot(), stat, strlen(), strrdirsep, and VALUE.

Referenced by rb_realpath_internal().

static size_t rmext ( const char *  p,
long  l0,
long  l1,
const char *  e,
long  l2,
rb_encoding enc 
) [static]

Definition at line 3736 of file file.c.

References fncomp, rb_enc_ascget(), rb_enc_codepoint_len(), and rb_enc_left_char_head.

Referenced by rb_file_s_basename().

const char* ruby_enc_find_basename ( const char *  name,
long *  baselen,
long *  alllen,
rb_encoding enc 
)

Definition at line 3772 of file file.c.

References chompdirsep(), Inc, isdirsep, skipprefix, strlen(), and strrdirsep.

Referenced by rb_file_s_basename().

const char* ruby_enc_find_extname ( const char *  name,
long *  len,
rb_encoding enc 
)

Definition at line 3965 of file file.c.

References Inc, isdirsep, istrailinggarbage, long, strlen(), and strrdirsep.

Referenced by path_sub_ext(), and rb_file_s_extname().

static char* skipprefixroot ( const char *  path,
const char *  end,
rb_encoding enc 
) [inline, static]

Definition at line 2881 of file file.c.

References isdirsep, skipprefix, and skiproot().

Referenced by rb_realpath_internal(), and realpath_rec().

static char* skiproot ( const char *  path,
const char *  end,
rb_encoding enc 
) [inline, static]

Definition at line 2835 of file file.c.

References isdirsep.

Referenced by rb_file_dirname(), rb_file_expand_path_internal(), and skipprefixroot().

static VALUE stat_atime ( struct stat *  st  )  [static]

Definition at line 731 of file file.c.

References rb_time_nano_new(), stat_atimespec(), timespec::tv_nsec, and timespec::tv_sec.

Referenced by rb_f_test(), rb_file_atime(), rb_file_s_atime(), and rb_stat_atime().

static struct timespec stat_atimespec ( struct stat *  st  )  [static]

Definition at line 714 of file file.c.

References timespec::tv_sec.

Referenced by stat_atime().

static VALUE stat_ctime ( struct stat *  st  )  [static]

Definition at line 779 of file file.c.

References rb_time_nano_new(), stat_ctimespec(), timespec::tv_nsec, and timespec::tv_sec.

Referenced by rb_f_test(), rb_file_ctime(), rb_file_s_ctime(), and rb_stat_ctime().

static struct timespec stat_ctimespec ( struct stat *  st  )  [static]

Definition at line 762 of file file.c.

References timespec::tv_sec.

Referenced by stat_ctime().

static size_t stat_memsize ( const void *  p  )  [static]

Definition at line 357 of file file.c.

References stat.

static VALUE stat_mtime ( struct stat *  st  )  [static]

Definition at line 755 of file file.c.

References rb_time_nano_new(), stat_mtimespec(), timespec::tv_nsec, and timespec::tv_sec.

Referenced by rb_f_test(), rb_file_mtime(), rb_file_s_mtime(), and rb_stat_mtime().

static struct timespec stat_mtimespec ( struct stat *  st  )  [static]

Definition at line 738 of file file.c.

References timespec::tv_sec.

Referenced by rb_stat_cmp(), and stat_mtime().

static VALUE stat_new_0 ( VALUE  klass,
const struct stat *  st 
) [static]

Definition at line 369 of file file.c.

References ALLOC, stat, stat_data_type, and TypedData_Wrap_Struct.

Referenced by rb_stat_new(), and rb_stat_s_alloc().

static VALUE str_shrink ( VALUE  str  )  [static]

Definition at line 3401 of file file.c.

References rb_str_resize(), and RSTRING_LEN.

Referenced by copy_path_class().

static void sys_fail2 ( VALUE  s1,
VALUE  s2 
) [static]

Definition at line 2504 of file file.c.

References MAXPATHLEN, rb_str_append(), rb_str_cat2(), rb_str_ellipsize(), rb_str_new_cstr(), rb_sys_fail_path, and VALUE.

Referenced by rb_file_s_rename().

static void test_check ( int  n,
int  argc,
VALUE *  argv 
) [static]

Definition at line 4424 of file file.c.

References FilePathValue, rb_check_arity, rb_secure(), RB_TYPE_P, and T_FILE.

static void unlink_internal ( const char *  path,
VALUE  pathv,
void *  arg 
) [static]

Definition at line 2636 of file file.c.

References rb_sys_fail_path.

Referenced by rb_file_s_unlink().

static void utime_internal ( const char *  path,
VALUE  pathv,
void *  arg 
) [static]

Definition at line 2455 of file file.c.

References utimbuf::actime, utime_args::atime, utimbuf::modtime, utime_args::mtime, NULL, utime_args::tsp, timespec::tv_sec, utime(), and utime_failed.

Referenced by rb_file_s_utime().


Variable Documentation

const char null_device[] [static]

Initial value:








    "/dev/null"

Definition at line 5567 of file file.c.

VALUE rb_cFile

Definition at line 139 of file file.c.

Referenced by argf_next_argv(), console_dev(), copy_stream_body(), Init_Dir(), Init_IO(), path_atime(), path_basename(), path_chmod(), path_chown(), path_ctime(), path_dirname(), path_expand_path(), path_extname(), path_fnmatch(), path_ftype(), path_lchmod(), path_lchown(), path_lstat(), path_make_link(), path_make_symlink(), path_mtime(), path_open(), path_readlink(), path_realdirpath(), path_realpath(), path_rename(), path_split(), path_stat(), path_truncate(), path_utime(), pty_getpty(), pty_open(), rb_f_open(), rb_file_open(), rb_file_open_str(), rb_io_fdopen(), rb_io_open(), rb_io_open_with_args(), and unlink_rescue().

VALUE rb_cStat

Definition at line 141 of file file.c.

VALUE rb_mFConst

Definition at line 5272 of file file.c.

VALUE rb_mFileTest

Definition at line 140 of file file.c.

Referenced by path_blockdev_p(), path_chardev_p(), path_directory_p(), path_executable_p(), path_executable_real_p(), path_exist_p(), path_file_p(), path_grpowned_p(), path_owned_p(), path_pipe_p(), path_readable_p(), path_readable_real_p(), path_setgid_p(), path_setuid_p(), path_size(), path_size_p(), path_socket_p(), path_sticky_p(), path_symlink_p(), path_world_readable_p(), path_world_writable_p(), path_writable_p(), path_writable_real_p(), and path_zero_p().

VALUE separator [static]

Definition at line 4092 of file file.c.

Referenced by chunk_ii().

const rb_data_type_t stat_data_type [static]

Initial value:

Definition at line 362 of file file.c.

Referenced by get_stat(), rb_stat_inspect(), and stat_new_0().


Generated on 19 Jul 2016 for Ruby by  doxygen 1.4.7