Ruby 2.0.0p353(2013-11-22revision43784)

- Main Page
- Modules
- Data Structures
- Files

- File List
- Globals

Data Structures | Macros | Functions | Variables
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>`
Include dependency graph for file.c:

Go to the source code of this file.

## Data Structures
struct | chown_args
struct | utime_args
struct | utimbuf

## Macros
#define | MAXPATHLEN 1024
#define | lstat stat
#define | STAT(p, s) stat((p), (s))
#define | rb_sys_fail_path(path) rb_sys_fail_str(path)
#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) /* anytime false */
#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 | 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_encoding * | check_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, struct stat *st)
static VALUE | stat_new (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_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)
VALUE | rb_home_dir (const char *user, 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 | 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 []

## Macro Definition 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)
do
do
Definition: tcltklib.c:2816
cond
#define cond(node)
Definition: ripper.c:422
p
Win32OLEIDispatch * p
Definition: win32ole.c:786
RSTRING_PTR
#define RSTRING_PTR(str)
buf
unsigned char buf[MIME_BUF_SIZE]
Definition: nkf.c:4308
rb_str_resize
VALUE rb_str_resize(VALUE, long)
Definition: string.c:1853
result
q result
Definition: tcltklib.c:7070
if
if(RB_TYPE_P(r, T_FLOAT))
Definition: bigdecimal.c:1186

Definition at line 2871 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)
p
Win32OLEIDispatch * p
Definition: win32ole.c:786
RSTRING_PTR
#define RSTRING_PTR(str)
RSTRING_LEN
#define RSTRING_LEN(str)
buf
unsigned char buf[MIME_BUF_SIZE]
Definition: nkf.c:4308
result
q result
Definition: tcltklib.c:7070

Definition at line 2882 of file file.c.

Referenced by rb_file_expand_path_internal().

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

Definition at line 4307 of file file.c.

Referenced by rb_f_test().

#define check_expand_path_args | ( |  | fname,
|  |  | dname
| ) |  |

Value:
(((fname) = rb_get_path(fname)), \
(void)(NIL_P(dname) ? (dname) : ((dname) = rb_get_path(dname))))
rb_get_path
VALUE rb_get_path(VALUE)
Definition: file.c:224
NIL_P
NIL_P(eventloop_thread)
Definition: tcltklib.c:4068

Definition at line 3303 of file file.c.

Referenced by rb_file_absolute_path(), and rb_file_expand_path().

#define DEVT2NUM | ( |  | v | ) | UINT2NUM(v)

Definition at line 367 of file file.c.

Referenced by rb_stat_dev(), rb_stat_rdev(), rb_stat_rdev_major(), and rb_stat_rdev_minor().

#define ENABLE_PATH_CHECK 1

Definition at line 5168 of file file.c.

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

Definition at line 3301 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 5223 of file file.c.

Referenced by rb_find_file_ext_safe(), and rb_find_file_safe().

#define has_unc | ( |  | buf | ) | 0

Definition at line 2688 of file file.c.

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

Definition at line 2683 of file file.c.

Referenced by chompdirsep(), rb_enc_path_last_separator(), rb_enc_path_next(), rb_file_expand_path_internal(), rb_home_dir(), rb_realpath_internal(), ruby_enc_find_basename(), and ruby_enc_find_extname().

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

Definition at line 142 of file file.c.

Referenced by rb_get_path_check_convert(), and rb_get_path_check_to_string().

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

Definition at line 2665 of file file.c.

Referenced by chompdirsep(), is_explicit_relative(), rb_enc_path_end(), rb_enc_path_last_separator(), rb_enc_path_next(), rb_enc_path_skip_prefix(), rb_file_dirname(), rb_file_expand_path_internal(), rb_file_join(), rb_is_absolute_path(), realpath_rec(), ruby_enc_find_basename(), ruby_enc_find_extname(), skipprefixroot(), and skiproot().

#define istrailinggarbage | ( |  | x | ) | 0

Definition at line 2679 of file file.c.

Referenced by rb_file_expand_path_internal(), and ruby_enc_find_extname().

#define LOCK_EX 2

Definition at line 4173 of file file.c.

Referenced by flock_winnt(), and Init_File().

#define LOCK_NB 4

Definition at line 4176 of file file.c.

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

#define LOCK_SH 1

Definition at line 4170 of file file.c.

Referenced by flock_winnt(), and Init_File().

#define LOCK_UN 8

Definition at line 4179 of file file.c.

Referenced by flock_winnt(), and Init_File().

#define lstat stat

Definition at line 83 of file file.c.

#define MAXPATHLEN 1024

Definition at line 43 of file file.c.

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

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

Definition at line 2682 of file file.c.

#define nextdirsep rb_enc_path_next

Definition at line 2756 of file file.c.

Referenced by rb_file_expand_path_internal().

#define NUM2DEVT | ( |  | v | ) | NUM2UINT(v)

Definition at line 364 of file file.c.

Referenced by rb_stat_inspect().

#define O_BINARY 0

Referenced by Init_File().

#define PRI_DEVT_PREFIX ""

Definition at line 370 of file file.c.

Referenced by rb_stat_inspect().

#define rb_file_s_lchmod rb_f_notimplement

Definition at line 2132 of file file.c.

Referenced by Init_File().

#define rb_file_s_lchown rb_f_notimplement

Definition at line 2276 of file file.c.

Referenced by Init_File().

#define rb_file_s_link rb_f_notimplement

Definition at line 2462 of file file.c.

Referenced by Init_File().

#define rb_file_s_readlink rb_f_notimplement

Definition at line 2544 of file file.c.

Referenced by Init_File().

#define rb_file_s_symlink rb_f_notimplement

Definition at line 2493 of file file.c.

Referenced by Init_File().

#define rb_file_s_truncate rb_f_notimplement

Definition at line 4125 of file file.c.

Referenced by Init_File().

#define rb_file_truncate rb_f_notimplement

Definition at line 4166 of file file.c.

Referenced by Init_File().

#define rb_sys_fail_path | ( |  | path | ) | rb_sys_fail_str(path)

Definition at line 109 of file file.c.

Referenced by chmod_internal(), chown_internal(), rb_f_test(), rb_file_atime(), rb_file_chmod(), rb_file_chown(), rb_file_ctime(), rb_file_flock(), rb_file_lstat(), rb_file_mtime(), rb_file_s_atime(), rb_file_s_ctime(), rb_file_s_ftype(), rb_file_s_lstat(), rb_file_s_mtime(), rb_file_s_size(), rb_file_s_stat(), rb_file_size(), rb_io_stat(), rb_stat_init(), realpath_rec(), sys_fail2(), and unlink_internal().

#define S_IRUGO (S_IRUSR | S_IRGRP | S_IROTH)

Definition at line 1367 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 | ( |  | m | ) | (0) /* anytime false */

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

#define S_ISCHR | ( |  | m | ) | (((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 | ) | (((m) & S_IFMT) == S_IFDIR)

Referenced by path_check_0(), rb_file_directory_p(), rb_file_ftype(), and rb_stat_d().

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

Definition at line 1507 of file file.c.

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

#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 1371 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 1070 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 2769 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 361 of file file.c.

Referenced by rb_stat_mode().

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

Definition at line 106 of file file.c.

Referenced by eaccess(), path_check_0(), rb_stat(), and rb_stat_init().

#define strrdirsep rb_enc_path_last_separator

Definition at line 2804 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 2672 of file file.c.

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

Definition at line 2319 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 2935 of file file.c.

References buf, memcpy(), 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(), 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 249 of file file.c.

References arg, i, path, RARRAY_LEN, RARRAY_PTR(), rb_get_path(), rb_secure(), rb_str_encode_ospath(), RSTRING_PTR, and s.

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 164 of file file.c.

References enc, 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 2025 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 2824 of file file.c.

References Inc, isdirsep, last, and path.

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 2141 of file file.c.

References arg, args, chown(), chown_args::group, chown_args::owner, and rb_sys_fail_path.

Referenced by rb_file_s_chown().

static VALUE copy_path_class | ( | VALUE | path,
|  | VALUE | orig
| ) |  |
| static

Definition at line 5288 of file file.c.

References OBJ_FREEZE, path, rb_obj_class(), and RBASIC.

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 5437 of file file.c.

References func, rb_define_module_function(), and rb_define_singleton_method().

Referenced by Init_File().

int eaccess | ( | const char * | path,
|  | int | mode
| ) |  |

Definition at line 1079 of file file.c.

References access, geteuid(), rb_group_member(), 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 3308 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 3979 of file file.c.

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

Referenced by rb_file_join().

static VALUE file_path_convert | ( | VALUE | name | ) |
| static

Definition at line 145 of file file.c.

References ENCODING_GET, name, 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.

static struct stat* get_stat | ( | VALUE | self | ) |
| static

Definition at line 319 of file file.c.

References rb_eTypeError, rb_raise(), st, 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 5488 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_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, rb_usascii_str_new2, and rb_w32_init_file().

Referenced by Init_IO().

static int is_explicit_relative | ( | const char * | path | ) |
| static

Definition at line 5280 of file file.c.

References isdirsep.

Referenced by rb_find_file_ext_safe(), and rb_find_file_safe().

NORETURN | ( | static void | sys_fail2VALUE, VALUE | ) |

static int path_check_0 | ( | VALUE | path,
|  | int | execpath
| ) |  |
| static

Definition at line 5174 of file file.c.

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

Referenced by rb_path_check().

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

Definition at line 2840 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 2806 of file file.c.

References Inc, isdirsep, last, and NULL.

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

Definition at line 2758 of file file.c.

References Inc, isdirsep, and s.

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 2772 of file file.c.

References isdirsep, path, 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 4368 of file file.c.

References CHECK, cmd, 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(), and strchr().

Referenced by Init_File().

VALUE rb_file_absolute_path | ( | VALUE | fname,
|  | VALUE | dname
| ) |  |

Definition at line 3357 of file file.c.

References check_expand_path_args, EXPAND_PATH_BUFFER, and rb_file_expand_path_internal().

Referenced by rb_f_require_relative(), and rb_file_s_absolute_path().

static VALUE rb_file_atime | ( | VALUE | obj | ) |
| static

Definition at line 1885 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 1266 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 1295 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 2074 of file file.c.

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

Referenced by Init_File().

static VALUE rb_file_chown | ( | VALUE | obj,
|  | VALUE | owner,
|  | VALUE | group
| ) |  |
| static

Definition at line 2205 of file file.c.

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

Referenced by Init_File().

void rb_file_const | ( | const char * | name,
|  | VALUE | value
| ) |  |

Definition at line 5144 of file file.c.

References rb_define_const().

Referenced by Init_Dir().

static VALUE rb_file_ctime | ( | VALUE | obj | ) |
| static

Definition at line 1986 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 1144 of file file.c.

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

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

VALUE rb_file_dirname | ( | VALUE | fname | ) |

Definition at line 3792 of file file.c.

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

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 1479 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 1497 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 1322 of file file.c.

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

Referenced by Init_File(), and rb_f_test().

VALUE rb_file_expand_path | ( | VALUE | fname,
|  | VALUE | dname
| ) |  |

Definition at line 3314 of file file.c.

References check_expand_path_args, EXPAND_PATH_BUFFER, and rb_file_expand_path_internal().

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 3321 of file file.c.

References EXPAND_PATH_BUFFER, and rb_file_expand_path_internal().

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 2960 of file file.c.

static VALUE rb_file_file_p | ( | VALUE | obj,
|  | VALUE | fname
| ) |  |
| static

Definition at line 1521 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 4249 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(), 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 1779 of file file.c.

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

Referenced by rb_file_s_ftype(), and rb_stat_ftype().

static VALUE rb_file_grpowned_p | ( | VALUE | obj,
|  | VALUE | fname
| ) |  |
| static

Definition at line 1613 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 1710 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 3987 of file file.c.

References check_path_encoding(), chompdirsep(), enc, FALSE, file_inspect_join(), FilePathStringValue, i, isdirsep, len, name, NIL_P(), OBJ_INFECT, RARRAY_LEN, RARRAY_PTR(), 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, result, RSTRING_GETMEM, RSTRING_LEN, RSTRING_PTR, StringValue, StringValueCStr, T_ARRAY, T_STRING, tail, tmp, TRUE, and TYPE.

Referenced by file_inspect_join(), and rb_file_s_join().

int rb_file_load_ok | ( | const char * | path | ) |

Definition at line 5260 of file file.c.

static VALUE rb_file_lstat | ( | VALUE | obj | ) |
| static

Definition at line 1002 of file file.c.

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

Referenced by Init_File().

static VALUE rb_file_mtime | ( | VALUE | obj | ) |
| static

Definition at line 1932 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 1582 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 279 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 1167 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 1339 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 1357 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 1592 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 3377 of file file.c.

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

Referenced by Init_File().

static VALUE rb_file_s_atime | ( | VALUE | klass,
|  | VALUE | fname
| ) |  |
| static

Definition at line 1862 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 3732 of file file.c.

References check_path_encoding(), enc, f, FilePathStringValue, n, name, NIL_P(), OBJ_INFECT, p, 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, and StringValueCStr.

Referenced by Init_File(), and rb_file_s_split().

static VALUE rb_file_s_chmod | ( | int | argc,
|  | VALUE * | argv
| ) |  |
| static

Definition at line 2045 of file file.c.

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

Referenced by Init_File().

static VALUE rb_file_s_chown | ( | int | argc,
|  | VALUE * | argv
| ) |  |
| static

Definition at line 2164 of file file.c.

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

Referenced by Init_File().

static VALUE rb_file_s_ctime | ( | VALUE | klass,
|  | VALUE | fname
| ) |  |
| static

Definition at line 1961 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 3786 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 3344 of file file.c.

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

Referenced by Init_File().

static VALUE rb_file_s_extname | ( | VALUE | klass,
|  | VALUE | fname
| ) |  |
| static

Definition at line 3922 of file file.c.

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

Referenced by Init_File().

static VALUE rb_file_s_ftype | ( | VALUE | klass,
|  | VALUE | fname
| ) |  |
| static

Definition at line 1835 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 4074 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 970 of file file.c.

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

Referenced by Init_File().

static VALUE rb_file_s_mtime | ( | VALUE | klass,
|  | VALUE | fname
| ) |  |
| static

Definition at line 1910 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 3951 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 3610 of file file.c.

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

Referenced by Init_File().

static VALUE rb_file_s_realpath | ( | int | argc,
|  | VALUE * | argv,
|  | VALUE | klass
| ) |  |
| static

Definition at line 3590 of file file.c.

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

Referenced by Init_File().

static VALUE rb_file_s_rename | ( | VALUE | klass,
|  | VALUE | from,
|  | VALUE | to
| ) |  |
| static

Definition at line 2585 of file file.c.

References dst, errno, f, FilePathValue, INT2FIX, rb_secure(), rb_str_encode_ospath(), src, StringValueCStr, sys_fail2(), and t.

Referenced by Init_File().

static VALUE rb_file_s_size | ( | VALUE | klass,
|  | VALUE | fname
| ) |  |
| static

Definition at line 1767 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 3968 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 915 of file file.c.

References FilePathValue, rb_secure(), rb_stat(), rb_sys_fail_path, stat, and stat_new().

Referenced by Init_File(), and rb_file_s_lstat().

static VALUE rb_file_s_umask | ( | int | argc,
|  | VALUE * | argv
| ) |  |
| static

Definition at line 2635 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 2565 of file file.c.

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

Referenced by Init_File().

static VALUE rb_file_s_utime | ( | int | argc,
|  | VALUE * | argv
| ) |  |
| static

Definition at line 2394 of file file.c.

References apply2files(), utime_args::atime, LONG2FIX, utime_args::mtime, n, NIL_P(), NULL, rb_scan_args(), rb_secure(), rb_time_timespec(), utime_args::tsp, and utime_internal().

Referenced by Init_File().

static VALUE rb_file_sgid_p | ( | VALUE | obj,
|  | VALUE | fname
| ) |  |
| static

Definition at line 1664 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 2009 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(), rb_sys_fail_path, and stat.

Referenced by Init_File().

static VALUE rb_file_size_p | ( | VALUE | obj,
|  | VALUE | fname
| ) |  |
| static

Definition at line 1561 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 1230 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 1681 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 1647 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 1191 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 1391 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 1457 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 1413 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 1431 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 1541 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 5371 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 5296 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 5302 of file file.c.

References copy_path_class(), file_expand_path_1(), FL_TAINT, FL_UNSET, FL_UNTRUSTED, fpath_check, i, is_explicit_relative(), MAXPATHLEN, OBJ_TAINTED, RARRAY_LEN, RARRAY_PTR(), 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, RSTRING_LEN, RSTRING_PTR, str, StringValueCStr, and tmp.

Referenced by rb_find_file_ext(), and search_required().

VALUE rb_find_file_safe | ( | VALUE | path,
|  | int | safe_level
| ) |  |

Definition at line 5377 of file file.c.

References copy_path_class(), file_expand_path_1(), fpath_check, i, is_explicit_relative(), MAXPATHLEN, OBJ_TAINTED, path, RARRAY_LEN, RARRAY_PTR(), 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, str, StringValueCStr, and tmp.

Referenced by rb_find_file(), and search_required().

VALUE rb_get_path | ( | VALUE | obj | ) |

Definition at line 224 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 211 of file file.c.

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

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 197 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 175 of file file.c.

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

Referenced by rb_construct_expanded_load_path(), and rb_get_path_check().

VALUE rb_get_path_no_checksafe | ( | VALUE | obj | ) |

Definition at line 218 of file file.c.

References rb_get_path_check().

static int rb_group_member | ( | GETGROUPS_T | gid | ) |
| static

Definition at line 1023 of file file.c.

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

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

VALUE rb_home_dir | ( | const char * | user,
|  | VALUE | result
| ) |  |

Definition at line 2888 of file file.c.

References buf, enc, getenv(), Inc, memcpy(), p, Qnil, rb_eArgError, rb_enc_associate(), rb_filesystem_encoding(), rb_raise(), rb_str_resize(), result, RSTRING_PTR, and strlen().

Referenced by dir_s_home(), and rb_file_expand_path_internal().

static VALUE rb_io_stat | ( | VALUE | obj | ) |
| static

Definition at line 943 of file file.c.

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

Referenced by Init_File(), and rb_file_lstat().

int rb_is_absolute_path | ( | const char * | path | ) |

Definition at line 5150 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 5229 of file file.c.

References p, path, 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 3502 of file file.c.

References chompdirsep(), enc, FilePathValue, Inc, len, NIL_P(), NULL, OBJ_TAINT, ptr, 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, and skipprefixroot().

Referenced by iseq_s_compile_file(), process_options(), rb_file_s_realdirpath(), rb_file_s_realpath(), rb_load_internal(), and ruby_init_loadpath_safe().

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

Definition at line 844 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 tmp.

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 729 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 4695 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 611 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 632 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 4717 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 345 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 765 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 4609 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 384 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 401 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 422 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 5036 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 4592 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 515 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 4763 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 4536 of file file.c.

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

Referenced by Init_File().

static VALUE rb_stat_init_copy | ( | VALUE | copy,
|  | VALUE | orig
| ) |  |
| static

Definition at line 4559 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 442 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 785 of file file.c.

References func, i, 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(), st, stat, stat_data_type, str, TypedData_Get_Struct, and v.

Referenced by Init_File().

static VALUE rb_stat_l | ( | VALUE | obj | ) |
| static

Definition at line 4651 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 465 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 745 of file file.c.

References get_stat(), and stat_mtime().

Referenced by Init_File(), and rb_stat_inspect().

static VALUE rb_stat_nlink | ( | VALUE | self | ) |
| static

Definition at line 483 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 4737 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 4624 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 4783 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_R | ( | VALUE | obj | ) |
| static

Definition at line 4816 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_rdev | ( | VALUE | self | ) |
| static

Definition at line 533 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 554 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 575 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 4744 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 4672 of file file.c.

References get_stat(), Qfalse, and Qtrue.

Referenced by Init_File().

static VALUE rb_stat_s | ( | VALUE | obj | ) |
| static

Definition at line 5071 of file file.c.

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

Referenced by Init_File().

static VALUE rb_stat_s_alloc | ( | VALUE | klass | ) |
| static

Definition at line 4521 of file file.c.

References stat_new_0().

Referenced by Init_File().

static VALUE rb_stat_sgid | ( | VALUE | obj | ) |
| static

Definition at line 5112 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 594 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 5133 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 5091 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 499 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 4875 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_W | ( | VALUE | obj | ) |
| static

Definition at line 4908 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_wr | ( | VALUE | obj | ) |
| static

Definition at line 4851 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 4943 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 4969 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_X | ( | VALUE | obj | ) |
| static

Definition at line 5001 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_z | ( | VALUE | obj | ) |
| static

Definition at line 5054 of file file.c.

References get_stat(), Qfalse, and Qtrue.

Referenced by Init_File().

VALUE rb_str_encode_ospath | ( | VALUE | path | ) |

Definition at line 230 of file file.c.

References enc, path, Qnil, rb_ascii8bit_encoding(), rb_enc_associate(), rb_enc_from_encoding(), rb_enc_get(), rb_filesystem_encoding(), rb_str_dup(), rb_str_encode(), rb_utf8_encoding(), and RSTRING_LEN.

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_stat(), rb_stat_init(), rb_sysopen(), and realpath_rec().

static VALUE rb_thread_flock | ( | void * | data | ) |
| static

Definition at line 4188 of file file.c.

References data, errno, flock(), and ret.

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 3390 of file file.c.

References CONST_ID, ELOOP, enc, 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, ret, RSTRING_LEN, RSTRING_PTR, S_ISLNK, skipprefixroot(), stat, strlen(), and strrdirsep.

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 3618 of file file.c.

References c, e, fncomp, last, p, rb_enc_ascget(), rb_enc_codepoint_len(), rb_enc_left_char_head, and s.

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 3654 of file file.c.

References chompdirsep(), e, end, f, Inc, isdirsep, n, name, p, q, 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 3847 of file file.c.

References e, Inc, isdirsep, istrailinggarbage, last, name, p, 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 2793 of file file.c.

References isdirsep, p, 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 2747 of file file.c.

References isdirsep, and path.

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

static VALUE stat_atime | ( | struct stat * | st | ) |
| static

Definition at line 663 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 646 of file file.c.

References st, timespec::tv_nsec, and timespec::tv_sec.

Referenced by stat_atime().

static VALUE stat_ctime | ( | struct stat * | st | ) |
| static

Definition at line 711 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 694 of file file.c.

References st, timespec::tv_nsec, and timespec::tv_sec.

Referenced by stat_ctime().

static size_t stat_memsize | ( | const void * | p | ) |
| static

Definition at line 290 of file file.c.

References stat.

static VALUE stat_mtime | ( | struct stat * | st | ) |
| static

Definition at line 687 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 670 of file file.c.

References st, timespec::tv_nsec, and timespec::tv_sec.

Referenced by rb_stat_cmp(), and stat_mtime().

static VALUE stat_new | ( | struct stat * | st | ) |
| static

Definition at line 313 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 stat_new_0 | ( | VALUE | klass,
|  | struct stat * | st
| ) |  |
| static

Definition at line 301 of file file.c.

References ALLOC, st, stat, stat_data_type, and TypedData_Wrap_Struct.

Referenced by rb_stat_s_alloc(), and stat_new().

static void sys_fail2 | ( | VALUE | s1,
|  | VALUE | s2
| ) |  |
| static

Definition at line 2417 of file file.c.

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

Referenced by rb_file_s_rename().

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

Definition at line 4293 of file file.c.

References FilePathValue, i, n, 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 2548 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 2368 of file file.c.

References utimbuf::actime, arg, 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 5443 of file file.c.

VALUE rb_cFile

Definition at line 138 of file file.c.

VALUE rb_cStat

Definition at line 140 of file file.c.

VALUE rb_mFConst

Definition at line 5141 of file file.c.

VALUE rb_mFileTest

Definition at line 139 of file file.c.

VALUE separator
| static

Definition at line 3974 of file file.c.

Referenced by chunk_ii().

const rb_data_type_t stat_data_type
| static

Initial value:
= {
"stat",
{NULL, RUBY_TYPED_DEFAULT_FREE, stat_memsize,},
}
stat_memsize
static size_t stat_memsize(const void *p)
Definition: file.c:290
RUBY_TYPED_DEFAULT_FREE
#define RUBY_TYPED_DEFAULT_FREE
NULL
#define NULL
Definition: _sdbm.c:103

Definition at line 295 of file file.c.

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