Ruby
2.7.1p83(2020-03-31revisiona0c7c23c9cec0d0ffcba012279cd652d28ad5bf3)
|
#include "ruby/ruby.h"
#include "ruby/encoding.h"
#include "ruby/io.h"
#include "ruby/util.h"
#include <fcntl.h>
#include <process.h>
#include <sys/stat.h>
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <assert.h>
#include <ctype.h>
#include <windows.h>
#include <winbase.h>
#include <wincon.h>
#include <share.h>
#include <shlobj.h>
#include <mbstring.h>
#include <shlwapi.h>
#include "ruby/win32.h"
#include "ruby/vm.h"
#include "win32/dir.h"
#include "win32/file.h"
#include "id.h"
#include "internal.h"
#include "encindex.h"
#include "dln.h"
#include "dln_find.c"
#include <sys/timeb.h>
#include "missing/nextafter.c"
Go to the source code of this file.
Data Structures | |
struct | constat |
struct | ChildRecord |
struct | _NtCmdLineElement |
struct | ioinfo |
struct | WSAMSG |
struct | NET_LUID |
struct | FILE_ID_128 |
struct | FILE_ID_INFO |
struct | asynchronous_arg_t |
struct | w32_io_info_t |
struct | w32_io_info_args |
Macros | |
#define | isdirsep(x) ((x) == '/' || (x) == '\\') |
#define | DLN_FIND_EXTRA_ARG_DECL ,UINT cp |
#define | DLN_FIND_EXTRA_ARG ,cp |
#define | rb_w32_stati128(path, st) w32_stati128(path, st, cp, FALSE) |
#define | getenv(name) w32_getenv(name, cp) |
#define | CharNext(p) CharNextExA(cp, (p), 0) |
#define | dln_find_exe_r rb_w32_udln_find_exe_r |
#define | dln_find_file_r rb_w32_udln_find_file_r |
#define | dln_find_exe_r(fname, path, buf, size) rb_w32_udln_find_exe_r(fname, path, buf, size, cp) |
#define | dln_find_file_r(fname, path, buf, size) rb_w32_udln_find_file_r(fname, path, buf, size, cp) |
#define | ENV_MAX 512 |
#define | enough_to_get(n) (--(n) >= 0) |
#define | enough_to_put(n) (--(n) >= 0) |
#define | Debug(something) /* nothing */ |
#define | TO_SOCKET(x) _get_osfhandle(x) |
#define | RUBY_CRITICAL if (0) {} else /* just remark */ |
#define | ERROR_PIPE_LOCAL 229L |
#define | map_errno rb_w32_map_errno |
#define | LK_ERR(f, i) |
#define | LK_LEN ULONG_MAX |
#define | CSIDL_LOCAL_APPDATA 28 |
#define | CSIDL_COMMON_APPDATA 35 |
#define | CSIDL_WINDOWS 36 |
#define | CSIDL_SYSTEM 37 |
#define | CSIDL_PROFILE 40 |
#define | env wk.val |
#define | set_env_val(vname) |
#define | conlist_disabled ((st_table *)-1) |
#define | MAKE_SOCKDATA(af, fl) ((int)((((int)af)<<4)|((fl)&0xFFFF))) |
#define | GET_FAMILY(v) ((int)(((v)>>4)&0xFFFF)) |
#define | GET_FLAGS(v) ((int)((v)&0xFFFF)) |
#define | MAXCHILDNUM 256 /* max num of child processes */ |
#define | FOREACH_CHILD(v) |
#define | END_FOREACH_CHILD } while (0) |
#define | InternalCmdsMax 8 |
#define | STRNDUPV(ptr, v, src, len) (((char *)memcpy(((ptr) = ALLOCV((v), (len) + 1)), (src), (len)))[len] = 0) |
#define | filecp rb_w32_filecp |
#define | mbstr_to_wstr rb_w32_mbstr_to_wstr |
#define | wstr_to_mbstr rb_w32_wstr_to_mbstr |
#define | acp_to_wstr(str, plen) mbstr_to_wstr(CP_ACP, str, -1, plen) |
#define | wstr_to_acp(str, plen) wstr_to_mbstr(CP_ACP, str, -1, plen) |
#define | filecp_to_wstr(str, plen) mbstr_to_wstr(filecp(), str, -1, plen) |
#define | wstr_to_filecp(str, plen) wstr_to_mbstr(filecp(), str, -1, plen) |
#define | utf8_to_wstr(str, plen) mbstr_to_wstr(CP_UTF8, str, -1, plen) |
#define | wstr_to_utf8(str, plen) wstr_to_mbstr(CP_UTF8, str, -1, plen) |
#define | NTGLOB 0x1 |
#define | NTMALLOC 0x2 |
#define | NTSTRING 0x4 |
#define | GetBit(bits, i) ((bits)[(i) / CHAR_BIT] & (1 << (i) % CHAR_BIT)) |
#define | SetBit(bits, i) ((bits)[(i) / CHAR_BIT] |= (1 << (i) % CHAR_BIT)) |
#define | BitOfIsDir(n) ((n) * 2) |
#define | BitOfIsRep(n) ((n) * 2 + 1) |
#define | DIRENT_PER_CHAR (CHAR_BIT / 2) |
#define | FILE_COUNT(stream) stream->_cnt |
#define | FILE_READPTR(stream) stream->_ptr |
#define | FILE_FILENO(stream) stream->_file |
#define | _CRTIMP __declspec(dllimport) |
#define | IOINFO_L2E 5 |
#define | IOINFO_ARRAY_ELTS (1 << IOINFO_L2E) |
#define | _osfhnd(i) (_pioinfo(i)->osfhnd) |
#define | _osfile(i) (_pioinfo(i)->osfile) |
#define | rb_acrt_lowio_lock_fh(i) EnterCriticalSection(&_pioinfo(i)->lock) |
#define | rb_acrt_lowio_unlock_fh(i) LeaveCriticalSection(&_pioinfo(i)->lock) |
#define | pioinfo_extra 0 |
#define | _set_osfhnd(fh, osfh) (void)(_osfhnd(fh) = osfh) |
#define | _set_osflags(fh, flags) (_osfile(fh) = (flags)) |
#define | FOPEN 0x01 /* file handle open */ |
#define | FEOFLAG 0x02 /* end of file has been encountered */ |
#define | FPIPE 0x08 /* file handle refers to a pipe */ |
#define | FNOINHERIT 0x10 /* file handle opened O_NOINHERIT */ |
#define | FAPPEND 0x20 /* file handle opened O_APPEND */ |
#define | FDEV 0x40 /* file handle refers to device */ |
#define | FTEXT 0x80 /* file handle is in text mode */ |
#define | open_null(fd) |
#define | ROOT_UID 0 |
#define | ROOT_GID 0 |
#define | WSAID_WSARECVMSG {0xf689d7c8,0x6f1f,0x436b,{0x8a,0x53,0xe5,0x4f,0xe3,0x51,0xc3,0x22}} |
#define | WSAID_WSASENDMSG {0xa441e712,0x754f,0x43ca,{0x84,0xa7,0x0d,0xee,0x44,0xcf,0x60,0x6d}} |
#define | msghdr_to_wsamsg(msg, wsamsg) |
#define | hex2byte(str) ((isdigit(*(str)) ? *(str) - '0' : toupper(*(str)) - 'A' + 10) << 4 | (isdigit(*((str) + 1)) ? *((str) + 1) - '0' : toupper(*((str) + 1)) - 'A' + 10)) |
#define | FILE_DEVICE_FILE_SYSTEM 0x00000009 |
#define | FSCTL_GET_REPARSE_POINT ((0x9<<16)|(42<<2)) |
#define | IO_REPARSE_TAG_SYMLINK 0xA000000CL |
#define | SYMBOLIC_LINK_FLAG_DIRECTORY (0x1) |
#define | SYMBOLIC_LINK_FLAG_ALLOW_UNPRIVILEGED_CREATE (0x2) |
#define | COPY_STAT(src, dest, size_cast) |
#define | FileIdInfo 0x12 |
#define | yield_once() Sleep(0) |
#define | yield_until(condition) do yield_once(); while (!(condition)) |
#define | set_new_std_handle(newfd, handle) |
#define | set_new_std_fd(newfd) set_new_std_handle(newfd, (HANDLE)rb_w32_get_osfhandle(newfd)) |
#define | FOREGROUND_MASK (FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_INTENSITY) |
#define | BACKGROUND_MASK (BACKGROUND_BLUE | BACKGROUND_GREEN | BACKGROUND_RED | BACKGROUND_INTENSITY) |
#define | constat_attr_color_reverse(attr) |
#define | COMMON_LVB_UNDERSCORE 0x8000 |
#define | INVALID_SET_FILE_POINTER ((DWORD)-1) |
Typedefs | |
typedef struct _NtCmdLineElement | NtCmdLineElement |
typedef DWORD(WINAPI * | get_final_path_func) (HANDLE, WCHAR *, DWORD, DWORD) |
typedef DWORD(WINAPI * | cigl_t) (const GUID *, NET_LUID *) |
typedef DWORD(WINAPI * | cilnA_t) (const NET_LUID *, char *, size_t) |
Enumerations | |
enum | { constat_init = -2, constat_esc = -1, constat_seq = 0 } |
Variables | |
EXTERN_C _CRTIMP ioinfo * | __pioinfo [] |
VALUE(*const | rb_f_notimplement_ )(int, const VALUE *, VALUE, VALUE) = rb_f_notimplement |
#define acp_to_wstr | ( | str, | |
plen | |||
) | mbstr_to_wstr(CP_ACP, str, -1, plen) |
#define BACKGROUND_MASK (BACKGROUND_BLUE | BACKGROUND_GREEN | BACKGROUND_RED | BACKGROUND_INTENSITY) |
#define COMMON_LVB_UNDERSCORE 0x8000 |
#define constat_attr_color_reverse | ( | attr | ) |
#define COPY_STAT | ( | src, | |
dest, | |||
size_cast | |||
) |
#define env wk.val |
#define ERROR_PIPE_LOCAL 229L |
#define FEOFLAG 0x02 /* end of file has been encountered */ |
UINT filecp rb_w32_filecp |
Definition at line 1281 of file win32.c.
Referenced by rb_w32_readdir().
#define filecp_to_wstr | ( | str, | |
plen | |||
) | mbstr_to_wstr(filecp(), str, -1, plen) |
#define FNOINHERIT 0x10 /* file handle opened O_NOINHERIT */ |
#define FOREACH_CHILD | ( | v | ) |
#define FOREGROUND_MASK (FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_INTENSITY) |
#define hex2byte | ( | str | ) | ((isdigit(*(str)) ? *(str) - '0' : toupper(*(str)) - 'A' + 10) << 4 | (isdigit(*((str) + 1)) ? *((str) + 1) - '0' : toupper(*((str) + 1)) - 'A' + 10)) |
#define INVALID_SET_FILE_POINTER ((DWORD)-1) |
#define IOINFO_ARRAY_ELTS (1 << IOINFO_L2E) |
#define map_errno rb_w32_map_errno |
#define mbstr_to_wstr rb_w32_mbstr_to_wstr |
#define msghdr_to_wsamsg | ( | msg, | |
wsamsg | |||
) |
#define open_null | ( | fd | ) |
#define set_env_val | ( | vname | ) |
#define set_new_std_fd | ( | newfd | ) | set_new_std_handle(newfd, (HANDLE)rb_w32_get_osfhandle(newfd)) |
#define set_new_std_handle | ( | newfd, | |
handle | |||
) |
#define utf8_to_wstr | ( | str, | |
plen | |||
) | mbstr_to_wstr(CP_UTF8, str, -1, plen) |
#define WSAID_WSARECVMSG {0xf689d7c8,0x6f1f,0x436b,{0x8a,0x53,0xe5,0x4f,0xe3,0x51,0xc3,0x22}} |
#define WSAID_WSASENDMSG {0xa441e712,0x754f,0x43ca,{0x84,0xa7,0x0d,0xee,0x44,0xcf,0x60,0x6d}} |
#define wstr_to_acp | ( | str, | |
plen | |||
) | wstr_to_mbstr(CP_ACP, str, -1, plen) |
#define wstr_to_filecp | ( | str, | |
plen | |||
) | wstr_to_mbstr(filecp(), str, -1, plen) |
#define wstr_to_mbstr rb_w32_wstr_to_mbstr |
#define wstr_to_utf8 | ( | str, | |
plen | |||
) | wstr_to_mbstr(CP_UTF8, str, -1, plen) |
#define yield_until | ( | condition | ) | do yield_once(); while (!(condition)) |
typedef struct _NtCmdLineElement NtCmdLineElement |
anonymous enum |
Definition at line 4652 of file win32.c.
References CLOCK_MONOTONIC, CLOCK_REALTIME, EINVAL, errno, long, map_errno, timespec::tv_nsec, and timespec::tv_sec.
Definition at line 4612 of file win32.c.
References CLOCK_REALTIME.
Referenced by rb_timespec_now().
Definition at line 4282 of file win32.c.
References arg, EBADF, errno, F_SETFL, is_socket, TO_SOCKET, va_arg, va_end, and va_start.
Referenced by dup2(), rb_cloexec_fcntl_dupfd(), rb_maygvl_fd_fix_cloexec(), rsock_detect_cloexec(), and rsock_make_fd_nonblock().
Definition at line 4176 of file win32.c.
References ifaddrs::ifa_addr, ifaddrs::ifa_name, ifaddrs::ifa_next, and ruby_xfree().
Definition at line 4598 of file win32.c.
Referenced by rb_timespec_now(), and rb_w32_select_with_thread().
Definition at line 4931 of file win32.c.
References filecp_to_wstr, free, and NULL.
Referenced by rb_mark_end_proc(), and rb_set_end_proc().
Definition at line 4754 of file win32.c.
References DATA_PTR, Data_Wrap_Struct, NULL, path, Qnil, rb_str_new2, RUBY_DEFAULT_FREE, ruby_getcwd(), strlen(), and xfree.
Definition at line 3274 of file win32.c.
References RUBY_CRITICAL, and TO_SOCKET.
Definition at line 5809 of file win32.c.
References EACCES, errno, path, rb_w32_stati128, and stat::st_mode.
Definition at line 1563 of file win32.c.
References argv, and rb_w32_aspawn_flags().
Definition at line 1548 of file win32.c.
Referenced by rb_w32_aspawn().
uintptr_t rb_w32_asynchronize | ( | asynchronous_func_t | func, |
uintptr_t | self, | ||
int | argc, | ||
uintptr_t * | argv, | ||
uintptr_t | intrval | ||
) |
Definition at line 5977 of file win32.c.
References arg, argc, argv, FALSE, asynchronous_arg_t::func, NULL, and RUBY_CRITICAL.
Definition at line 2396 of file win32.c.
References DIR::bits, direct::d_altname, direct::d_name, DIR::dirstr, free, and DIR::start.
Definition at line 3317 of file win32.c.
References EINPROGRESS, err, errno, map_errno, RUBY_CRITICAL, and TO_SOCKET.
VALUE rb_w32_conv_from_wchar | ( | const WCHAR * | wstr, |
rb_encoding * | enc | ||
) |
Definition at line 2229 of file win32.c.
References ECONV_UNDEF_REPLACE, ENCINDEX_ASCII, ENCINDEX_US_ASCII, ENCINDEX_UTF_16LE, ENCINDEX_UTF_8, len, NULL, Qnil, rb_enc_from_index(), rb_enc_str_new(), rb_enc_to_index(), rb_long2int, rb_str_conv_enc_opts(), RSTRING_PTR, and src.
Referenced by rb_w32_conv_from_wstr().
char* rb_w32_conv_from_wstr | ( | const WCHAR * | wstr, |
long * | lenp, | ||
rb_encoding * | enc | ||
) |
Definition at line 2260 of file win32.c.
References len, malloc(), memcpy(), NIL_P, ptr, rb_w32_conv_from_wchar(), RSTRING_LEN, RSTRING_PTR, str, and wstr_to_filecp.
Definition at line 6134 of file win32.c.
References dup2(), and set_new_std_fd.
void rb_w32_fd_copy | ( | rb_fdset_t * | dst, |
const fd_set * | src, | ||
int | max | ||
) |
void rb_w32_fd_dup | ( | rb_fdset_t * | dst, |
const rb_fdset_t * | src | ||
) |
Definition at line 2872 of file win32.c.
References FD_SETSIZE, rb_fdset_t::fdset, memcpy(), src, and xrealloc.
Definition at line 2845 of file win32.c.
References RUBY_CRITICAL, and TO_SOCKET.
Definition at line 3861 of file win32.c.
References errno, gethostname(), len, map_errno, name, and RUBY_CRITICAL.
Definition at line 6087 of file win32.c.
Referenced by rb_w32_pipe().
struct protoent* WSAAPI rb_w32_getprotobynumber | ( | int | num | ) |
Definition at line 3353 of file win32.c.
References RUBY_CRITICAL, and TO_SOCKET.
WCHAR* rb_w32_home_dir | ( | void | ) |
Definition at line 7503 of file win32.c.
References filecp_to_wstr, NULL, and path.
Definition at line 2166 of file win32.c.
References filecp_to_wstr, and NULL.
Definition at line 6412 of file win32.c.
References _set_osfhnd, _set_osflags, EMFILE, err, errno, FALSE, FNOINHERIT, FOPEN, FPIPE, h, int, map_errno, memcpy(), name, NULL, PRI_PIDT_PREFIX, rb_acrt_lowio_lock_fh, rb_acrt_lowio_unlock_fh, rb_pid_t, rb_w32_close(), rb_w32_getpid(), RUBY_CRITICAL, and snprintf().
Definition at line 6981 of file win32.c.
References _osfile, _set_osflags, buf, err, FALSE, FEOFLAG, FTEXT, is_socket, len, rb_acrt_lowio_lock_fh, rb_acrt_lowio_unlock_fh, rb_w32_recv(), read(), size, TO_SOCKET, and wait().
int rb_w32_read_reparse_point | ( | const WCHAR * | path, |
rb_w32_reparse_buffer_t * | rp, | ||
size_t | bufsize, | ||
WCHAR ** | result, | ||
DWORD * | len | ||
) |
Definition at line 5012 of file win32.c.
Referenced by rb_w32_reparse_symlink_p().
struct direct* rb_w32_readdir | ( | DIR * | dirp, |
rb_encoding * | enc | ||
) |
Definition at line 2337 of file win32.c.
References ENCINDEX_ASCII, filecp, and rb_enc_to_index().
Definition at line 3555 of file win32.c.
Referenced by rb_w32_read().
Definition at line 5333 of file win32.c.
References filecp_to_wstr, free, and NULL.
Definition at line 4987 of file win32.c.
References ALLOCV, ALLOCV_END, FALSE, len, path, rb_w32_read_reparse_point(), rb_w32_reparse_buffer_size, rp, size, and TRUE.
Definition at line 2384 of file win32.c.
References DIR::curr, DIR::loc, and DIR::start.
Referenced by rb_w32_seekdir().
Definition at line 7538 of file win32.c.
References filecp_to_wstr, NULL, and path.
Definition at line 2369 of file win32.c.
References DIR::curr, DIR::loc, and rb_w32_rewinddir().
int WSAAPI rb_w32_select | ( | int | nfds, |
fd_set * | rd, | ||
fd_set * | wr, | ||
fd_set * | ex, | ||
struct timeval * | timeout | ||
) |
Definition at line 3250 of file win32.c.
References rb_w32_select_with_thread().
int rb_w32_select_with_thread | ( | int | nfds, |
fd_set * | rd, | ||
fd_set * | wr, | ||
fd_set * | ex, | ||
struct timeval * | timeout, | ||
void * | th | ||
) |
Definition at line 3113 of file win32.c.
References EINVAL, errno, gettimeofday(), NULL, rb_fd_init(), timeval::tv_sec, and timeval::tv_usec.
Referenced by rb_w32_select().
Definition at line 3570 of file win32.c.
Referenced by rb_w32_write().
Definition at line 4390 of file win32.c.
References rb_w32_set_nonblock2(), and TRUE.
Definition at line 4359 of file win32.c.
References is_socket, and TO_SOCKET.
Referenced by rb_w32_set_nonblock().
Definition at line 3805 of file win32.c.
References RUBY_CRITICAL.
Definition at line 2706 of file win32.c.
References EADDRINUSE, EWOULDBLOCK, i, int, and sys_nerr.
Definition at line 847 of file win32.c.
Referenced by ruby_sysinit().
UINT rb_w32_system_tmpdir | ( | WCHAR * | path, |
UINT | len | ||
) |
Definition at line 3074 of file win32.c.
References timeval::tv_sec, timeval::tv_usec, and wait().
Definition at line 5926 of file win32.c.
References exit(), and tms::tms_utime.
Definition at line 5824 of file win32.c.
References EACCES, errno, path, rb_w32_ustati128(), and stat::st_mode.
Definition at line 1570 of file win32.c.
References argv, and rb_w32_uaspawn_flags().
Definition at line 1556 of file win32.c.
Referenced by rb_w32_uaspawn().
Definition at line 4911 of file win32.c.
References free, NULL, and utf8_to_wstr.
Definition at line 7489 of file win32.c.
References NULL, path, and utf8_to_wstr.
Definition at line 7610 of file win32.c.
References filecp_to_wstr, NULL, and path.
Definition at line 2179 of file win32.c.
References NULL, and utf8_to_wstr.
Definition at line 5314 of file win32.c.
References free, NULL, and utf8_to_wstr.
Definition at line 7552 of file win32.c.
References NULL, path, and utf8_to_wstr.
Definition at line 5755 of file win32.c.
Referenced by rb_w32_uaccess().
Definition at line 7388 of file win32.c.
References utimbuf::actime, AT_FDCWD, utimbuf::modtime, path, rb_w32_utimensat(), timespec::tv_nsec, and timespec::tv_sec.
Definition at line 7441 of file win32.c.
References filecp_to_wstr, NULL, and path.
Referenced by rb_w32_utime(), and rb_w32_utimes().
Definition at line 7414 of file win32.c.
References AT_FDCWD, path, rb_w32_utimensat(), timespec::tv_nsec, timeval::tv_sec, timespec::tv_sec, and timeval::tv_usec.
Definition at line 7596 of file win32.c.
References NULL, path, and utf8_to_wstr.
Definition at line 7375 of file win32.c.
References utimbuf::actime, AT_FDCWD, utimbuf::modtime, path, rb_w32_uutimensat(), timespec::tv_nsec, and timespec::tv_sec.
Definition at line 7427 of file win32.c.
References NULL, path, and utf8_to_wstr.
Referenced by rb_w32_uutime(), and rb_w32_uutimes().
Definition at line 7401 of file win32.c.
References AT_FDCWD, path, rb_w32_uutimensat(), timespec::tv_nsec, timeval::tv_sec, timespec::tv_sec, and timeval::tv_usec.
int ruby_brace_glob_with_enc | ( | const char * | str, |
int | flags, | ||
ruby_glob_func * | func, | ||
VALUE | arg, | ||
rb_encoding * | enc | ||
) |
Definition at line 2646 of file dir.c.
References arg, ruby_glob_funcs_t::error, brace_args::flags, brace_args::funcs, GLOB_VERBOSE, ruby_glob_funcs_t::match, NULL, and brace_args::value.
Referenced by ruby_brace_glob().
STATIC_ASSERT | ( | std_handle | , |
(STD_OUTPUT_HANDLE-STD_INPUT_HANDLE) | = =(STD_ERROR_HANDLE-STD_OUTPUT_HANDLE) |
||
) |
Definition at line 5189 of file win32.c.
References waitpid().
Referenced by rb_w32_read(), rb_w32_time_subtract(), and rb_w32_write().
int err |
Definition at line 135 of file win32.c.
Referenced by kill(), onig_compile_ruby(), onig_new(), ossl_raise(), rb_f_exec(), rb_f_raise(), rb_fiber_start(), rb_gc_for_fd(), rb_load_fail(), rb_mutex_unlock(), rb_notify_fd_close(), rb_range_beg_len(), rb_reg_check_preprocess(), rb_reg_match_p(), rb_reg_prepare_re(), rb_set_errinfo(), rb_threadptr_unlock_all_locking_mutexes(), rb_w32_connect(), rb_w32_pipe(), rb_w32_read(), rb_w32_write(), reg_enum_key(), reg_get_val(), reg_get_val2(), rsock_syserr_fail_host_port(), rsock_syserr_fail_path(), rsock_syserr_fail_raddrinfo(), rsock_syserr_fail_raddrinfo_or_sockaddr(), rsock_syserr_fail_sockaddr(), ruby_close(), ruby_float_step_size(), ruby_getpeername(), ruby_getsockname(), ruby_shutdown(), and sdbm_prep().
DWORD winerr |
Definition at line 134 of file win32.c.
Referenced by rb_w32_map_errno().