Ruby 3.0.5p211 (2022-11-24 revision ba5cf0f7c52d4d35cc6a173c89eda98ceffa2dcf)
|
#include "ruby/internal/config.h"
#include <ctype.h>
#include <time.h>
#include <sys/types.h>
#include <sys/stat.h>
#include "dln.h"
#include "encindex.h"
#include "id.h"
#include "internal.h"
#include "internal/compilers.h"
#include "internal/dir.h"
#include "internal/error.h"
#include "internal/file.h"
#include "internal/io.h"
#include "internal/load.h"
#include "internal/object.h"
#include "internal/process.h"
#include "internal/thread.h"
#include "internal/vm.h"
#include "ruby/encoding.h"
#include "ruby/io.h"
#include "ruby/thread.h"
#include "ruby/util.h"
Go to the source code of this file.
Data Structures | |
struct | apply_filename |
struct | apply_arg |
struct | no_gvl_stat_data |
struct | access_arg |
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 | 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 | statx_has_birthtime(st) 0 |
#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 | rb_file_s_lutime rb_f_notimplement |
#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 | 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 } |
Variables | |
VALUE | rb_cFile |
VALUE | rb_mFileTest |
VALUE | rb_cStat |
const char | ruby_null_device [] |
#define apply2args | ( | n | ) | (rb_check_arity(argc, n, UNLIMITED_ARGUMENTS), argc-=n) |
#define BUFCHECK | ( | cond | ) |
#define BUFCOPY | ( | srcptr, | |
srclen | |||
) |
#define BUFINIT | ( | ) |
#define check_expand_path_args | ( | fname, | |
dname | |||
) |
#define endpwent | ( | ) | ((void)0) |
#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 EXPAND_PATH_BUFFER | ( | ) | rb_usascii_str_new(0, MAXPATHLEN + 2) |
#define fncomp strncmp |
#define Next | ( | p, | |
e, | |||
enc | |||
) | ((p) + rb_enc_mbclen((p), (e), (enc))) |
#define nextdirsep rb_enc_path_next |
#define O_BINARY 0 |
#define O_SHARE_DELETE 0 |
#define rb_file_birthtime rb_f_notimplement |
#define rb_file_s_birthtime rb_f_notimplement |
#define rb_file_s_lchmod rb_f_notimplement |
#define rb_file_s_lchown rb_f_notimplement |
#define rb_file_s_link rb_f_notimplement |
#define rb_file_s_lutime rb_f_notimplement |
#define rb_file_s_mkfifo rb_f_notimplement |
#define rb_file_s_readlink rb_f_notimplement |
#define rb_file_s_symlink rb_f_notimplement |
#define rb_file_s_truncate rb_f_notimplement |
#define rb_file_truncate rb_f_notimplement |
#define rb_stat_birthtime rb_f_notimplement |
#define S_ISBLK | ( | m | ) | (0) /* anytime false */ |
#define S_ISCHR | ( | m | ) | (((m) & S_IFMT) == S_IFCHR) |
#define S_ISDIR | ( | m | ) | (((m) & S_IFMT) == S_IFDIR) |
#define ST2UINT | ( | val | ) | ((val) & ~(~1UL << (sizeof(val) * CHAR_BIT - 1))) |
#define strrdirsep rb_enc_path_last_separator |
#define syserr_fail2_in | ( | func, | |
e, | |||
s1, | |||
s2 | |||
) | syserr_fail2(e, s1, s2) |
#define WITH_ROOTDIFF | ( | stmt | ) |
typedef struct no_gvl_stat_data no_gvl_stat_data |
enum rb_realpath_mode |
Definition at line 125 of file flock.c.
References rb_notimplement().
void Init_File | ( | void | ) |
Definition at line 6503 of file file.c.
References INT2FIX, LOCK_EX, LOCK_NB, LOCK_SH, LOCK_UN, O_BINARY, O_NONBLOCK, O_SHARE_DELETE, PATH_SEP, Qnil, rb_cFile, rb_cIO, rb_cObject, rb_cStat, 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_file_birthtime, rb_file_directory_p(), rb_file_s_birthtime, rb_file_s_lchmod, rb_file_s_lchown, rb_file_s_link, rb_file_s_lutime, rb_file_s_mkfifo, rb_file_s_readlink, rb_file_s_symlink, rb_file_s_truncate, rb_file_truncate, rb_fstring_cstr, rb_fstring_lit, rb_include_module(), rb_mComparable, rb_mFileTest, rb_obj_freeze(), rb_stat_birthtime, rb_usascii_str_new2, and ruby_null_device.
Referenced by Init_IO().
VALUE rb_check_realpath | ( | VALUE | basedir, |
VALUE | path, | ||
rb_encoding * | enc | ||
) |
Definition at line 4504 of file file.c.
References RB_REALPATH_CHECK.
Definition at line 3640 of file file.c.
References getenv, getuid(), NIL_P, rb_eArgError, rb_raise(), rb_str_resize(), and RSTRING_PTR.
Referenced by rb_file_expand_path_internal().
char * rb_enc_path_end | ( | 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_next | ( | const char * | s, |
const char * | e, | ||
rb_encoding * | enc | ||
) |
Definition at line 3422 of file file.c.
Referenced by rb_enc_path_skip_prefix().
char * rb_enc_path_skip_prefix | ( | const char * | path, |
const char * | end, | ||
rb_encoding * | enc | ||
) |
Definition at line 3436 of file file.c.
References isdirsep, and rb_enc_path_next().
Definition at line 4157 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().
Definition at line 6171 of file file.c.
References name, and rb_define_const().
Referenced by Init_Dir().
Definition at line 1646 of file file.c.
References Qfalse, Qtrue, S_ISDIR, and stat.
Referenced by Init_Dir(), and Init_File().
Definition at line 4732 of file file.c.
References FilePathStringValue, isdirsep, name, rb_enc_copy(), rb_enc_get(), rb_str_cat(), rb_str_new, rb_usascii_str_new2, root, RSTRING_LEN, skipprefix, StringValueCStr, strrdirsep, and top.
Referenced by rb_f_require_relative().
Definition at line 4103 of file file.c.
References check_expand_path_args, expand_path, and EXPAND_PATH_BUFFER.
Referenced by rb_file_s_expand_path().
Definition at line 4110 of file file.c.
References expand_path, and EXPAND_PATH_BUFFER.
Referenced by rb_feature_provided().
VALUE rb_file_expand_path_internal | ( | VALUE | fname, |
VALUE | dname, | ||
int | abs_mode, | ||
int | long_name, | ||
VALUE | result | ||
) |
Definition at line 3731 of file file.c.
References ALLOCA_N, ALLOCV_END, ALLOCV_N, BUFCHECK, BUFCOPY, BUFINIT, ENC_CODERANGE_7BIT, ENC_CODERANGE_CLEAR, ENCINDEX_UTF_8, ENCODING_GET, Inc, int(), INVALID_HANDLE_VALUE, isADS, isdirsep, istrailinggarbage, L, len, MAXPATHLEN, memcpy, nextdirsep, NIL_P, NULL, PRIsVALUE, Qnil, rb_default_home_dir(), rb_eArgError, rb_enc_associate(), rb_enc_check(), rb_enc_copy(), rb_enc_get(), rb_enc_raise, rb_enc_str_coderange(), rb_file_expand_path_internal(), rb_filesystem_encoding(), rb_home_dir_of(), rb_is_absolute_path(), rb_raise(), rb_str_cat_conv_enc_opts(), rb_str_encode_ospath(), rb_str_modify_expand(), rb_str_resize(), rb_str_set_len(), rb_utf8_encoding(), root, RSTRING_LEN, RSTRING_PTR, ruby_getcwd(), S_ISLNK, skipprefix, stat, STRCASECMP, StringValuePtr, strlcat(), strlen(), strncasecmp, strrdirsep, TOLOWER, and WITH_ROOTDIFF.
Referenced by rb_file_expand_path_internal(), rb_find_file(), and rb_find_file_ext().
Definition at line 6304 of file file.c.
References O_NONBLOCK, rb_cloexec_open(), rb_update_max_fd(), and ruby_is_fd_loadable().
Referenced by rb_find_file(), and rb_find_file_ext().
Definition at line 4164 of file file.c.
References argc, argv, Qnil, rb_check_arity, and rb_file_absolute_path().
Definition at line 4116 of file file.c.
References argc, argv, Qnil, rb_check_arity, and rb_file_expand_path().
Definition at line 6404 of file file.c.
References f, MAXPATHLEN, RARRAY_AREF, RARRAY_LEN, rb_enc_associate_index(), rb_file_expand_path_internal(), rb_file_load_ok(), RB_GC_GUARD, rb_get_expanded_load_path(), rb_get_path(), rb_is_absolute_path(), rb_str_resize(), rb_str_tmp_new(), rb_usascii_encindex, RSTRING_LEN, RSTRING_PTR, str, and StringValueCStr.
Referenced by rb_load().
Definition at line 6345 of file file.c.
References f, MAXPATHLEN, RARRAY_AREF, RARRAY_LEN, rb_enc_associate_index(), rb_file_expand_path_internal(), rb_file_load_ok(), RB_GC_GUARD, rb_get_expanded_load_path(), rb_get_path(), rb_is_absolute_path(), rb_str_cat2, rb_str_dup(), rb_str_resize(), rb_str_set_len(), rb_str_tmp_new(), rb_usascii_encindex, RSTRING_LEN, RSTRING_PTR, str, and StringValueCStr.
Definition at line 245 of file file.c.
References rb_get_path_check_convert(), and rb_get_path_check_to_string().
Referenced by rb_feature_provided(), rb_find_file(), rb_find_file_ext(), rb_get_path_no_checksafe(), and rb_resolve_feature_path().
Definition at line 226 of file file.c.
References rb_eArgError, rb_raise(), rb_str_new4, and rb_str_to_cstr().
Referenced by rb_get_path().
Definition at line 211 of file file.c.
References CONST_ID, rb_check_funcall_default(), StringValue, and T_STRING.
Referenced by rb_get_path().
Definition at line 239 of file file.c.
References rb_get_path().
Definition at line 3600 of file file.c.
References endpwent, getenv, getlogin(), PRIsVALUE, rb_eArgError, rb_enc_get(), rb_filesystem_encoding(), rb_raise(), rb_str_conv_enc(), rb_utf8_encoding(), RSTRING_PTR, and strcasecmp.
Referenced by rb_file_expand_path_internal().
Definition at line 6177 of file file.c.
References isdirsep.
Referenced by rb_file_expand_path_internal(), rb_find_file(), and rb_find_file_ext().
Definition at line 6250 of file file.c.
References PATH_SEP_CHAR, rb_str_new, strchr(), and strlen().
Definition at line 4496 of file file.c.
References rb_enc_get(), RB_REALPATH_DIR, and RB_REALPATH_STRICT.
Definition at line 251 of file file.c.
References ENCINDEX_ASCII, ENCINDEX_UTF_8, ENCODING_GET, rb_enc_from_index(), rb_filesystem_encindex(), rb_str_conv_enc(), and rb_utf8_encoding().
Referenced by rb_execarg_addopt(), rb_file_expand_path_internal(), and rb_resolve_feature_path().
const char * ruby_enc_find_basename | ( | const char * | name, |
long * | baselen, | ||
long * | alllen, | ||
rb_encoding * | enc | ||
) |
Definition at line 4589 of file file.c.
References f, Inc, isdirsep, name, root, skipprefix, strlen(), and strrdirsep.
const char * ruby_enc_find_extname | ( | const char * | name, |
long * | len, | ||
rb_encoding * | enc | ||
) |
VALUE rb_cFile |
Definition at line 174 of file file.c.
Referenced by Init_Dir(), Init_File(), Init_IO(), rb_file_open(), rb_file_open_str(), and rb_io_fdopen().
VALUE rb_cStat |
Definition at line 176 of file file.c.
Referenced by Init_File(), and rb_stat_new().
VALUE rb_mFileTest |
Definition at line 175 of file file.c.
Referenced by Init_File().
const char ruby_null_device[] |