Ruby  2.5.0dev(2017-10-22revision60238)
Data Structures | Macros | Typedefs | Enumerations | Functions | Variables
file.c File Reference
#include "id.h"
#include "internal.h"
#include "ruby/io.h"
#include "ruby/util.h"
#include "ruby/thread.h"
#include "dln.h"
#include "encindex.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  no_gvl_stat_data
 
struct  chown_args
 
struct  utime_args
 
struct  utimbuf
 
struct  rename_args
 

Macros

#define MAXPATHLEN   1024
 
#define lstat   stat
 
#define STAT(p, s)   stat((p), (s))
 
#define USE_OSPATH   0
 
#define TO_OSPATH(str)   (str)
 
#define insecure_obj_p(obj, level)   ((level) > 0 && OBJ_TAINTED(obj))
 
#define NORMALIZE_UTF8PATH   0
 
#define apply2args(n)   (rb_check_arity(argc, n, UNLIMITED_ARGUMENTS), argc-=n)
 
#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 HAVE_STAT_BIRTHTIME
 
#define rb_stat_birthtime   rb_f_notimplement
 
#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_birthtime   rb_f_notimplement
 
#define rb_file_birthtime   rb_f_notimplement
 
#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 syserr_fail2_in(func, e, s1, s2)   syserr_fail2(e, s1, s2)
 
#define sys_fail2(s1, s2)   syserr_fail2(errno, s1, s2)
 
#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 USE_NTFS_ADS   0
 
#define istrailinggarbage(x)   0
 
#define isADS(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 SKIPPATHSEP(p)   1
 
#define BUFCOPY(srcptr, srclen)
 
#define WITH_ROOTDIFF(stmt)
 
#define endpwent()   ((void)0)
 
#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 rb_file_s_mkfifo   rb_f_notimplement
 
#define ENABLE_PATH_CHECK   1
 
#define S_IWOTH   002
 
#define fpath_check(path)   path_check_0((path), FALSE)
 
#define O_BINARY   0
 
#define O_SHARE_DELETE   0
 

Typedefs

typedef struct no_gvl_stat_data no_gvl_stat_data
 

Enumerations

enum  rb_realpath_mode { RB_REALPATH_CHECK, RB_REALPATH_DIR, RB_REALPATH_STRICT, RB_REALPATH_MODE_MAX }
 

Functions

int flock (int, int)
 
VALUE rb_get_path_check_to_string (VALUE obj, int level)
 
VALUE rb_get_path_check_convert (VALUE obj, VALUE tmp, int level)
 
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)
 
VALUE rb_stat_new (const struct stat *st)
 
int eaccess (const char *path, int mode)
 
VALUE rb_file_directory_p (VALUE obj, VALUE fname)
 
 NORETURN (static void syserr_fail2_in(const char *, int, VALUE, VALUE))
 
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)
 
char * rb_enc_path_last_separator (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_of (VALUE user, VALUE result)
 
VALUE rb_default_home_dir (VALUE result)
 
VALUE rb_file_expand_path_internal (VALUE fname, VALUE dname, int abs_mode, int long_name, VALUE result)
 
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, const VALUE *argv)
 
VALUE rb_file_absolute_path (VALUE fname, VALUE dname)
 
VALUE rb_file_s_absolute_path (int argc, const VALUE *argv)
 
VALUE rb_realpath_internal (VALUE basedir, VALUE path, int strict)
 
VALUE rb_check_realpath (VALUE basedir, VALUE path)
 
const char * ruby_enc_find_basename (const char *name, long *baselen, long *alllen, rb_encoding *enc)
 
VALUE rb_file_dirname (VALUE fname)
 
const char * ruby_enc_find_extname (const char *name, long *len, rb_encoding *enc)
 
void rb_file_const (const char *name, VALUE value)
 
int rb_is_absolute_path (const char *path)
 
int rb_path_check (const char *path)
 
int ruby_is_fd_loadable (int fd)
 
int rb_file_load_ok (const char *path)
 
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)
 
void Init_File (void)
 

Variables

VALUE rb_cFile
 
VALUE rb_mFileTest
 
VALUE rb_cStat
 
VALUE rb_mFConst
 

Macro Definition Documentation

◆ apply2args

#define apply2args (   n)    (rb_check_arity(argc, n, UNLIMITED_ARGUMENTS), argc-=n)

Definition at line 355 of file file.c.

◆ BUFCHECK

#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)
#define cond(node, column)
Definition: ripper.c:653
unsigned char buf[MIME_BUF_SIZE]
Definition: nkf.c:4309
#define RSTRING_PTR(str)
Definition: ruby.h:975

Definition at line 3222 of file file.c.

Referenced by rb_file_expand_path_internal().

◆ BUFCOPY

#define BUFCOPY (   srcptr,
  srclen 
)
Value:
do { \
const int skip = SKIPPATHSEP(p); \
rb_str_set_len(result, p-buf+skip); \
BUFCHECK(bdiff + ((srclen)+skip) >= buflen); \
p += skip; \
memcpy(p, (srcptr), (srclen)); \
p += (srclen); \
} while (0)
#define SKIPPATHSEP(p)
Definition: file.c:3241
unsigned char buf[MIME_BUF_SIZE]
Definition: nkf.c:4309

Definition at line 3244 of file file.c.

◆ BUFINIT

#define BUFINIT ( )
Value:
(\
p = buf = RSTRING_PTR(result),\
buflen = RSTRING_LEN(result),\
pend = p + buflen)
#define RSTRING_LEN(str)
Definition: ruby.h:971
unsigned char buf[MIME_BUF_SIZE]
Definition: nkf.c:4309
#define RSTRING_PTR(str)
Definition: ruby.h:975

Definition at line 3233 of file file.c.

Referenced by rb_file_expand_path_internal().

◆ CHECK

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

Definition at line 4831 of file file.c.

◆ check_expand_path_args

#define check_expand_path_args (   fname,
  dname 
)
Value:
(((fname) = rb_get_path(fname)), \
(void)(NIL_P(dname) ? (dname) : ((dname) = rb_get_path(dname))))
VALUE rb_get_path(VALUE obj)
Definition: file.c:226
#define NIL_P(v)
Definition: ruby.h:451

Definition at line 3764 of file file.c.

Referenced by rb_file_absolute_path(), and rb_file_expand_path().

◆ DEVT2NUM

#define DEVT2NUM (   v)    UINT2NUM(v)

Definition at line 489 of file file.c.

◆ ENABLE_PATH_CHECK

#define ENABLE_PATH_CHECK   1

Definition at line 5737 of file file.c.

◆ endpwent

#define endpwent ( )    ((void)0)

◆ expand_path

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

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

◆ EXPAND_PATH_BUFFER

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

Definition at line 3752 of file file.c.

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

◆ fncomp

#define fncomp   strncmp

◆ fpath_check

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

Definition at line 5792 of file file.c.

◆ has_unc

#define has_unc (   buf)    0

Definition at line 3039 of file file.c.

◆ HAVE_STAT_BIRTHTIME

#define HAVE_STAT_BIRTHTIME

Definition at line 850 of file file.c.

◆ Inc

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

Definition at line 3034 of file file.c.

Referenced by rb_enc_path_last_separator(), rb_enc_path_next(), and ruby_enc_find_extname().

◆ insecure_obj_p

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

Definition at line 143 of file file.c.

Referenced by rb_get_path_check_to_string().

◆ isADS

#define isADS (   x)    0

Definition at line 3030 of file file.c.

Referenced by ruby_enc_find_extname().

◆ isdirsep

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

◆ istrailinggarbage

#define istrailinggarbage (   x)    0

Definition at line 3025 of file file.c.

Referenced by ruby_enc_find_extname().

◆ LOCK_EX

#define LOCK_EX   2

Definition at line 4700 of file file.c.

◆ LOCK_NB

#define LOCK_NB   4

Definition at line 4703 of file file.c.

◆ LOCK_SH

#define LOCK_SH   1

Definition at line 4697 of file file.c.

◆ LOCK_UN

#define LOCK_UN   8

Definition at line 4706 of file file.c.

◆ lstat

#define lstat   stat

Definition at line 98 of file file.c.

◆ MAXPATHLEN

#define MAXPATHLEN   1024

Definition at line 51 of file file.c.

◆ Next

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

Definition at line 3033 of file file.c.

◆ nextdirsep

#define nextdirsep   rb_enc_path_next

Definition at line 3107 of file file.c.

Referenced by rb_file_expand_path_internal().

◆ NORMALIZE_UTF8PATH

#define NORMALIZE_UTF8PATH   0

Definition at line 352 of file file.c.

◆ NUM2DEVT

#define NUM2DEVT (   v)    NUM2UINT(v)

Definition at line 486 of file file.c.

◆ O_BINARY

#define O_BINARY   0

◆ O_SHARE_DELETE

#define O_SHARE_DELETE   0

◆ PRI_DEVT_PREFIX

#define PRI_DEVT_PREFIX   ""

Definition at line 492 of file file.c.

◆ rb_file_birthtime

#define rb_file_birthtime   rb_f_notimplement

Definition at line 2321 of file file.c.

◆ rb_file_s_birthtime

#define rb_file_s_birthtime   rb_f_notimplement

Definition at line 2292 of file file.c.

◆ rb_file_s_lchmod

#define rb_file_s_lchmod   rb_f_notimplement

Definition at line 2454 of file file.c.

◆ rb_file_s_lchown

#define rb_file_s_lchown   rb_f_notimplement

Definition at line 2588 of file file.c.

◆ rb_file_s_link

#define rb_file_s_link   rb_f_notimplement

Definition at line 2787 of file file.c.

◆ rb_file_s_mkfifo

#define rb_file_s_mkfifo   rb_f_notimplement

Definition at line 5707 of file file.c.

◆ rb_file_s_readlink

#define rb_file_s_readlink   rb_f_notimplement

Definition at line 2869 of file file.c.

◆ rb_file_s_symlink

#define rb_file_s_symlink   rb_f_notimplement

Definition at line 2817 of file file.c.

◆ rb_file_s_truncate

#define rb_file_s_truncate   rb_f_notimplement

Definition at line 4646 of file file.c.

◆ rb_file_truncate

#define rb_file_truncate   rb_f_notimplement

Definition at line 4693 of file file.c.

◆ rb_stat_birthtime

#define rb_stat_birthtime   rb_f_notimplement

Definition at line 946 of file file.c.

◆ S_IRUGO

#define S_IRUGO   (S_IRUSR | S_IRGRP | S_IROTH)

Definition at line 1646 of file file.c.

◆ S_ISBLK

#define S_ISBLK (   m)    (0) /* anytime false */

◆ S_ISCHR

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

◆ S_ISDIR

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

Referenced by ruby_is_fd_loadable().

◆ S_ISREG

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

Definition at line 1782 of file file.c.

Referenced by ruby_is_fd_loadable().

◆ S_IWOTH

#define S_IWOTH   002

◆ S_IWUGO

#define S_IWUGO   (S_IWUSR | S_IWGRP | S_IWOTH)

Definition at line 1650 of file file.c.

◆ S_IXUGO

#define S_IXUGO   (S_IXUSR | S_IXGRP | S_IXOTH)

Definition at line 1318 of file file.c.

Referenced by eaccess().

◆ SKIPPATHSEP

#define SKIPPATHSEP (   p)    1

Definition at line 3241 of file file.c.

◆ skipprefix

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

Definition at line 3120 of file file.c.

Referenced by ruby_enc_find_basename().

◆ ST2UINT

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

Definition at line 483 of file file.c.

◆ STAT

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

Definition at line 128 of file file.c.

Referenced by eaccess().

◆ strrdirsep

#define strrdirsep   rb_enc_path_last_separator

Definition at line 3155 of file file.c.

Referenced by ruby_enc_find_basename(), and ruby_enc_find_extname().

◆ sys_fail2

#define sys_fail2 (   s1,
  s2 
)    syserr_fail2(errno, s1, s2)

Definition at line 2733 of file file.c.

◆ syserr_fail2_in

#define syserr_fail2_in (   func,
  e,
  s1,
  s2 
)    syserr_fail2(e, s1, s2)

Definition at line 2731 of file file.c.

◆ TO_OSPATH

#define TO_OSPATH (   str)    (str)

Definition at line 136 of file file.c.

◆ USE_NTFS

#define USE_NTFS   0

Definition at line 3011 of file file.c.

◆ USE_NTFS_ADS

#define USE_NTFS_ADS   0

Definition at line 3018 of file file.c.

◆ USE_OSPATH

#define USE_OSPATH   0

Definition at line 135 of file file.c.

◆ utime_failed

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

Definition at line 2631 of file file.c.

◆ WITH_ROOTDIFF

#define WITH_ROOTDIFF (   stmt)
Value:
do { \
long rootdiff = root - buf; \
stmt; \
root = buf + rootdiff; \
} while (0)
unsigned char buf[MIME_BUF_SIZE]
Definition: nkf.c:4309

Definition at line 3253 of file file.c.

Typedef Documentation

◆ no_gvl_stat_data

Enumeration Type Documentation

◆ rb_realpath_mode

Enumerator
RB_REALPATH_CHECK 
RB_REALPATH_DIR 
RB_REALPATH_STRICT 
RB_REALPATH_MODE_MAX 

Definition at line 3862 of file file.c.

Function Documentation

◆ eaccess()

int eaccess ( const char *  path,
int  mode 
)

Definition at line 1336 of file file.c.

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

◆ flock()

int flock ( int  ,
int   
)

Definition at line 125 of file flock.c.

◆ Init_File()

void Init_File ( void  )

Definition at line 6081 of file file.c.

References rb_cFile, rb_cIO, rb_define_class(), rb_define_module(), and rb_mFileTest.

◆ NORETURN()

NORETURN ( static void   syserr_fail2_inconst char *, int, VALUE, VALUE)

◆ rb_check_realpath()

VALUE rb_check_realpath ( VALUE  basedir,
VALUE  path 
)

Definition at line 4086 of file file.c.

Referenced by rb_file_s_absolute_path().

◆ rb_default_home_dir()

VALUE rb_default_home_dir ( VALUE  result)

Definition at line 3327 of file file.c.

Referenced by rb_file_expand_path_internal().

◆ rb_enc_path_end()

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

Definition at line 3191 of file file.c.

References isdirsep.

◆ rb_enc_path_last_separator()

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

Definition at line 3157 of file file.c.

References Inc, isdirsep, last, and NULL.

◆ rb_enc_path_next()

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

Definition at line 3109 of file file.c.

References Inc, and isdirsep.

Referenced by rb_enc_path_skip_prefix().

◆ rb_enc_path_skip_prefix()

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

Definition at line 3123 of file file.c.

References isdirsep, and rb_enc_path_next().

◆ rb_file_absolute_path()

VALUE rb_file_absolute_path ( VALUE  fname,
VALUE  dname 
)

Definition at line 3823 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().

◆ rb_file_const()

void rb_file_const ( const char *  name,
VALUE  value 
)

Definition at line 5713 of file file.c.

References rb_define_const().

◆ rb_file_directory_p()

VALUE rb_file_directory_p ( VALUE  obj,
VALUE  fname 
)

Definition at line 1405 of file file.c.

◆ rb_file_dirname()

VALUE rb_file_dirname ( VALUE  fname)

Definition at line 4317 of file file.c.

References FilePathStringValue, name, rb_enc_get(), RSTRING_LEN, and StringValueCStr.

Referenced by rb_f_require_relative().

◆ rb_file_expand_path()

VALUE rb_file_expand_path ( VALUE  fname,
VALUE  dname 
)

Definition at line 3775 of file file.c.

References check_expand_path_args, expand_path, and EXPAND_PATH_BUFFER.

Referenced by rb_file_s_expand_path().

◆ rb_file_expand_path_fast()

VALUE rb_file_expand_path_fast ( VALUE  fname,
VALUE  dname 
)

Definition at line 3782 of file file.c.

References expand_path, and EXPAND_PATH_BUFFER.

Referenced by rb_feature_provided().

◆ rb_file_expand_path_internal()

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

Definition at line 3397 of file file.c.

Referenced by rb_file_expand_path_internal().

◆ rb_file_load_ok()

int rb_file_load_ok ( const char *  path)

Definition at line 5852 of file file.c.

◆ rb_file_s_absolute_path()

VALUE rb_file_s_absolute_path ( int  argc,
const VALUE argv 
)

◆ rb_file_s_expand_path()

VALUE rb_file_s_expand_path ( int  argc,
const VALUE argv 
)

Definition at line 3816 of file file.c.

References Qnil, rb_check_arity, and rb_file_expand_path().

◆ rb_find_file()

VALUE rb_find_file ( VALUE  path)

Definition at line 5965 of file file.c.

References rb_find_file_safe(), and rb_safe_level().

◆ rb_find_file_ext()

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

Definition at line 5893 of file file.c.

References rb_find_file_ext_safe(), and rb_safe_level().

◆ rb_find_file_ext_safe()

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

Definition at line 5899 of file file.c.

References f, and StringValueCStr.

Referenced by rb_find_file_ext().

◆ rb_find_file_safe()

VALUE rb_find_file_safe ( VALUE  path,
int  safe_level 
)

Definition at line 5971 of file file.c.

References f, and StringValueCStr.

Referenced by rb_find_file().

◆ rb_get_path()

VALUE rb_get_path ( VALUE  obj)

Definition at line 226 of file file.c.

References rb_get_path_check(), and rb_safe_level().

Referenced by rb_feature_provided().

◆ rb_get_path_check()

VALUE rb_get_path_check ( VALUE  obj,
int  level 
)

◆ rb_get_path_check_convert()

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

Definition at line 197 of file file.c.

Referenced by rb_get_path_check().

◆ rb_get_path_check_to_string()

VALUE rb_get_path_check_to_string ( VALUE  obj,
int  level 
)

◆ rb_get_path_no_checksafe()

VALUE rb_get_path_no_checksafe ( VALUE  obj)

Definition at line 220 of file file.c.

References rb_get_path_check().

◆ rb_home_dir_of()

VALUE rb_home_dir_of ( VALUE  user,
VALUE  result 
)

Definition at line 3287 of file file.c.

Referenced by rb_file_expand_path_internal().

◆ rb_is_absolute_path()

int rb_is_absolute_path ( const char *  path)

Definition at line 5719 of file file.c.

References isdirsep.

Referenced by rb_file_expand_path_internal().

◆ rb_path_check()

int rb_path_check ( const char *  path)

Definition at line 5798 of file file.c.

References PATH_SEP_CHAR, strchr(), and strlen().

◆ rb_realpath_internal()

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

Definition at line 4078 of file file.c.

References RB_REALPATH_DIR, and RB_REALPATH_STRICT.

Referenced by rb_file_s_absolute_path().

◆ rb_stat_new()

VALUE rb_stat_new ( const struct stat st)

Definition at line 435 of file file.c.

◆ rb_str_encode_ospath()

VALUE rb_str_encode_ospath ( VALUE  path)

◆ ruby_enc_find_basename()

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

Definition at line 4172 of file file.c.

References f, isdirsep, name, skipprefix, strlen(), and strrdirsep.

◆ ruby_enc_find_extname()

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

Definition at line 4372 of file file.c.

References Inc, isADS, isdirsep, istrailinggarbage, last, len, name, strlen(), and strrdirsep.

◆ ruby_is_fd_loadable()

int ruby_is_fd_loadable ( int  fd)

Definition at line 5825 of file file.c.

References errno, fstat, S_ISDIR, and S_ISREG.

Referenced by rb_file_load_ok().

Variable Documentation

◆ rb_cFile

VALUE rb_cFile

Definition at line 139 of file file.c.

Referenced by Init_File(), and rb_io_fdopen().

◆ rb_cStat

VALUE rb_cStat

Definition at line 141 of file file.c.

◆ rb_mFConst

VALUE rb_mFConst

Definition at line 5710 of file file.c.

◆ rb_mFileTest

VALUE rb_mFileTest

Definition at line 140 of file file.c.

Referenced by Init_File().