1 pub use ffi::c_void; 2 3 pub type c_char = i8; 4 pub type c_uchar = u8; 5 pub type c_int = i32; 6 pub type c_uint = u32; 7 pub type c_short = i16; 8 pub type c_ushort = u16; 9 pub type c_long = i32; 10 pub type c_ulong = u32; 11 pub type c_longlong = i64; 12 pub type c_ulonglong = u64; 13 pub type size_t = usize; 14 pub type ssize_t = isize; 15 pub type off_t = i64; 16 pub type pid_t = i32; 17 pub type int8_t = i8; 18 pub type uint8_t = u8; 19 pub type int16_t = i16; 20 pub type uint16_t = u16; 21 pub type int32_t = i32; 22 pub type uint32_t = u32; 23 pub type int64_t = i64; 24 pub type uint64_t = u64; 25 pub type clock_t = c_longlong; 26 pub type time_t = c_longlong; 27 pub type c_double = f64; 28 pub type c_float = f32; 29 30 pub type __wasi_advice_t = u8; 31 pub type __wasi_clockid_t = u32; 32 pub type __wasi_device_t = u64; 33 pub type __wasi_dircookie_t = u64; 34 pub type __wasi_errno_t = u16; 35 pub type __wasi_eventrwflags_t = u16; 36 pub type __wasi_eventtype_t = u8; 37 pub type __wasi_exitcode_t = u32; 38 pub type __wasi_fd_t = u32; 39 pub type __wasi_fdflags_t = u16; 40 pub type __wasi_filedelta_t = i64; 41 pub type __wasi_filesize_t = u64; 42 pub type __wasi_filetype_t = u8; 43 pub type __wasi_fstflags_t = u16; 44 pub type __wasi_inode_t = u64; 45 pub type __wasi_linkcount_t = u32; 46 pub type __wasi_lookupflags_t = u32; 47 pub type __wasi_oflags_t = u16; 48 pub type __wasi_riflags_t = u16; 49 pub type __wasi_rights_t = u64; 50 pub type __wasi_roflags_t = u16; 51 pub type __wasi_sdflags_t = u8; 52 pub type __wasi_siflags_t = u16; 53 pub type __wasi_signal_t = u8; 54 pub type __wasi_subclockflags_t = u16; 55 pub type __wasi_timestamp_t = u64; 56 pub type __wasi_userdata_t = u64; 57 pub type __wasi_whence_t = u8; 58 pub type __wasi_preopentype_t = u8; 59 60 #[cfg_attr(feature = "extra_traits", derive(Debug))] 61 pub enum FILE {} 62 impl ::Copy for FILE {} 63 impl ::Clone for FILE { clone(&self) -> FILE64 fn clone(&self) -> FILE { 65 *self 66 } 67 } 68 69 s! { 70 #[repr(align(8))] 71 pub struct fpos_t { 72 data: [u8; 16], 73 } 74 75 pub struct tm { 76 pub tm_sec: c_int, 77 pub tm_min: c_int, 78 pub tm_hour: c_int, 79 pub tm_mday: c_int, 80 pub tm_mon: c_int, 81 pub tm_year: c_int, 82 pub tm_wday: c_int, 83 pub tm_yday: c_int, 84 pub tm_isdst: c_int, 85 pub __tm_gmtoff: c_int, 86 pub __tm_zone: *const c_char, 87 pub __tm_nsec: c_int, 88 } 89 90 pub struct timespec { 91 pub tv_sec: time_t, 92 pub tv_nsec: c_long, 93 } 94 95 pub struct itimerspec { 96 pub it_interval: timespec, 97 pub it_value: timespec, 98 } 99 100 pub struct __wasi_dirent_t { 101 pub d_next: __wasi_dircookie_t, 102 pub d_ino: __wasi_inode_t, 103 pub d_namlen: u32, 104 pub d_type: __wasi_filetype_t, 105 } 106 107 pub struct __wasi_event_u_fd_readwrite_t { 108 pub nbytes: __wasi_filesize_t, 109 pub flags: __wasi_eventrwflags_t, 110 } 111 112 pub struct __wasi_fdstat_t { 113 pub fs_filetype: __wasi_filetype_t, 114 pub fs_flags: __wasi_fdflags_t, 115 pub fs_rights_base: __wasi_rights_t, 116 pub fs_rights_inheriting: __wasi_rights_t, 117 } 118 119 pub struct __wasi_filestat_t { 120 pub st_dev: __wasi_device_t, 121 pub st_ino: __wasi_inode_t, 122 pub st_filetype: __wasi_filetype_t, 123 pub st_nlink: __wasi_linkcount_t, 124 pub st_size: __wasi_filesize_t, 125 pub st_atim: __wasi_timestamp_t, 126 pub st_mtim: __wasi_timestamp_t, 127 pub st_ctim: __wasi_timestamp_t, 128 } 129 130 pub struct __wasi_ciovec_t { 131 pub buf: *const ::c_void, 132 pub buf_len: size_t, 133 } 134 135 pub struct __wasi_iovec_t { 136 pub buf: *mut ::c_void, 137 pub buf_len: size_t, 138 } 139 140 pub struct __wasi_subscription_u_clock_t { 141 pub identifier: __wasi_userdata_t, 142 pub clock_id: __wasi_clockid_t, 143 pub timeout: __wasi_timestamp_t, 144 pub precision: __wasi_timestamp_t, 145 pub flags: __wasi_subclockflags_t, 146 } 147 148 pub struct __wasi_subscription_u_fd_readwrite_t { 149 pub fd: __wasi_fd_t, 150 } 151 152 pub struct __wasi_prestat_u_dir_t { 153 pub pr_name_len: size_t, 154 } 155 } 156 157 s_no_extra_traits! { 158 #[allow(missing_debug_implementations)] 159 pub struct __wasi_subscription_t { 160 pub userdata: __wasi_userdata_t, 161 pub type_: __wasi_eventtype_t, 162 pub u: __wasi_subscription_u, 163 } 164 165 #[allow(missing_debug_implementations)] 166 pub struct __wasi_event_t { 167 pub userdata: __wasi_userdata_t, 168 pub error: __wasi_errno_t, 169 pub type_: __wasi_eventtype_t, 170 pub u: __wasi_event_u, 171 } 172 173 #[allow(missing_debug_implementations)] 174 pub union __wasi_event_u { 175 pub fd_readwrite: __wasi_event_u_fd_readwrite_t, 176 _bindgen_union_align: [u64; 2], 177 } 178 179 #[allow(missing_debug_implementations)] 180 pub union __wasi_subscription_u { 181 pub clock: __wasi_subscription_u_clock_t, 182 pub fd_readwrite: 183 __wasi_subscription_u_fd_readwrite_t, 184 _bindgen_union_align: [u64; 5], 185 } 186 187 #[allow(missing_debug_implementations)] 188 pub struct __wasi_prestat_t { 189 pub pr_type: __wasi_preopentype_t, 190 pub u: __wasi_prestat_u, 191 } 192 193 #[allow(missing_debug_implementations)] 194 pub union __wasi_prestat_u { 195 pub dir: __wasi_prestat_u_dir_t, 196 } 197 198 } 199 200 pub const STDIN_FILENO: c_int = 0; 201 pub const STDOUT_FILENO: c_int = 1; 202 pub const STDERR_FILENO: c_int = 2; 203 pub const SEEK_SET: c_int = 2; 204 pub const SEEK_CUR: c_int = 0; 205 pub const SEEK_END: c_int = 1; 206 207 pub const __WASI_ADVICE_NORMAL: u8 = 0; 208 pub const __WASI_ADVICE_SEQUENTIAL: u8 = 1; 209 pub const __WASI_ADVICE_RANDOM: u8 = 2; 210 pub const __WASI_ADVICE_WILLNEED: u8 = 3; 211 pub const __WASI_ADVICE_DONTNEED: u8 = 4; 212 pub const __WASI_ADVICE_NOREUSE: u8 = 5; 213 pub const __WASI_CLOCK_REALTIME: u32 = 0; 214 pub const __WASI_CLOCK_MONOTONIC: u32 = 1; 215 pub const __WASI_CLOCK_PROCESS_CPUTIME_ID: u32 = 2; 216 pub const __WASI_CLOCK_THREAD_CPUTIME_ID: u32 = 3; 217 pub const __WASI_DIRCOOKIE_START: u64 = 0; 218 pub const __WASI_ESUCCESS: u16 = 0; 219 pub const __WASI_E2BIG: u16 = 1; 220 pub const __WASI_EACCES: u16 = 2; 221 pub const __WASI_EADDRINUSE: u16 = 3; 222 pub const __WASI_EADDRNOTAVAIL: u16 = 4; 223 pub const __WASI_EAFNOSUPPORT: u16 = 5; 224 pub const __WASI_EAGAIN: u16 = 6; 225 pub const __WASI_EALREADY: u16 = 7; 226 pub const __WASI_EBADF: u16 = 8; 227 pub const __WASI_EBADMSG: u16 = 9; 228 pub const __WASI_EBUSY: u16 = 10; 229 pub const __WASI_ECANCELED: u16 = 11; 230 pub const __WASI_ECHILD: u16 = 12; 231 pub const __WASI_ECONNABORTED: u16 = 13; 232 pub const __WASI_ECONNREFUSED: u16 = 14; 233 pub const __WASI_ECONNRESET: u16 = 15; 234 pub const __WASI_EDEADLK: u16 = 16; 235 pub const __WASI_EDESTADDRREQ: u16 = 17; 236 pub const __WASI_EDOM: u16 = 18; 237 pub const __WASI_EDQUOT: u16 = 19; 238 pub const __WASI_EEXIST: u16 = 20; 239 pub const __WASI_EFAULT: u16 = 21; 240 pub const __WASI_EFBIG: u16 = 22; 241 pub const __WASI_EHOSTUNREACH: u16 = 23; 242 pub const __WASI_EIDRM: u16 = 24; 243 pub const __WASI_EILSEQ: u16 = 25; 244 pub const __WASI_EINPROGRESS: u16 = 26; 245 pub const __WASI_EINTR: u16 = 27; 246 pub const __WASI_EINVAL: u16 = 28; 247 pub const __WASI_EIO: u16 = 29; 248 pub const __WASI_EISCONN: u16 = 30; 249 pub const __WASI_EISDIR: u16 = 31; 250 pub const __WASI_ELOOP: u16 = 32; 251 pub const __WASI_EMFILE: u16 = 33; 252 pub const __WASI_EMLINK: u16 = 34; 253 pub const __WASI_EMSGSIZE: u16 = 35; 254 pub const __WASI_EMULTIHOP: u16 = 36; 255 pub const __WASI_ENAMETOOLONG: u16 = 37; 256 pub const __WASI_ENETDOWN: u16 = 38; 257 pub const __WASI_ENETRESET: u16 = 39; 258 pub const __WASI_ENETUNREACH: u16 = 40; 259 pub const __WASI_ENFILE: u16 = 41; 260 pub const __WASI_ENOBUFS: u16 = 42; 261 pub const __WASI_ENODEV: u16 = 43; 262 pub const __WASI_ENOENT: u16 = 44; 263 pub const __WASI_ENOEXEC: u16 = 45; 264 pub const __WASI_ENOLCK: u16 = 46; 265 pub const __WASI_ENOLINK: u16 = 47; 266 pub const __WASI_ENOMEM: u16 = 48; 267 pub const __WASI_ENOMSG: u16 = 49; 268 pub const __WASI_ENOPROTOOPT: u16 = 50; 269 pub const __WASI_ENOSPC: u16 = 51; 270 pub const __WASI_ENOSYS: u16 = 52; 271 pub const __WASI_ENOTCONN: u16 = 53; 272 pub const __WASI_ENOTDIR: u16 = 54; 273 pub const __WASI_ENOTEMPTY: u16 = 55; 274 pub const __WASI_ENOTRECOVERABLE: u16 = 56; 275 pub const __WASI_ENOTSOCK: u16 = 57; 276 pub const __WASI_ENOTSUP: u16 = 58; 277 pub const __WASI_ENOTTY: u16 = 59; 278 pub const __WASI_ENXIO: u16 = 60; 279 pub const __WASI_EOVERFLOW: u16 = 61; 280 pub const __WASI_EOWNERDEAD: u16 = 62; 281 pub const __WASI_EPERM: u16 = 63; 282 pub const __WASI_EPIPE: u16 = 64; 283 pub const __WASI_EPROTO: u16 = 65; 284 pub const __WASI_EPROTONOSUPPORT: u16 = 66; 285 pub const __WASI_EPROTOTYPE: u16 = 67; 286 pub const __WASI_ERANGE: u16 = 68; 287 pub const __WASI_EROFS: u16 = 69; 288 pub const __WASI_ESPIPE: u16 = 70; 289 pub const __WASI_ESRCH: u16 = 71; 290 pub const __WASI_ESTALE: u16 = 72; 291 pub const __WASI_ETIMEDOUT: u16 = 73; 292 pub const __WASI_ETXTBSY: u16 = 74; 293 pub const __WASI_EXDEV: u16 = 75; 294 pub const __WASI_ENOTCAPABLE: u16 = 76; 295 pub const __WASI_EVENT_FD_READWRITE_HANGUP: u16 = 0x0001; 296 pub const __WASI_EVENTTYPE_CLOCK: u8 = 0; 297 pub const __WASI_EVENTTYPE_FD_READ: u8 = 1; 298 pub const __WASI_EVENTTYPE_FD_WRITE: u8 = 2; 299 pub const __WASI_FDFLAG_APPEND: u16 = 0x0001; 300 pub const __WASI_FDFLAG_DSYNC: u16 = 0x0002; 301 pub const __WASI_FDFLAG_NONBLOCK: u16 = 0x0004; 302 pub const __WASI_FDFLAG_RSYNC: u16 = 0x0008; 303 pub const __WASI_FDFLAG_SYNC: u16 = 0x0010; 304 pub const __WASI_FILETYPE_UNKNOWN: u8 = 0; 305 pub const __WASI_FILETYPE_BLOCK_DEVICE: u8 = 1; 306 pub const __WASI_FILETYPE_CHARACTER_DEVICE: u8 = 2; 307 pub const __WASI_FILETYPE_DIRECTORY: u8 = 3; 308 pub const __WASI_FILETYPE_REGULAR_FILE: u8 = 4; 309 pub const __WASI_FILETYPE_SOCKET_DGRAM: u8 = 5; 310 pub const __WASI_FILETYPE_SOCKET_STREAM: u8 = 6; 311 pub const __WASI_FILETYPE_SYMBOLIC_LINK: u8 = 7; 312 pub const __WASI_FILESTAT_SET_ATIM: u16 = 0x0001; 313 pub const __WASI_FILESTAT_SET_ATIM_NOW: u16 = 0x0002; 314 pub const __WASI_FILESTAT_SET_MTIM: u16 = 0x0004; 315 pub const __WASI_FILESTAT_SET_MTIM_NOW: u16 = 0x0008; 316 pub const __WASI_LOOKUP_SYMLINK_FOLLOW: u32 = 0x00000001; 317 pub const __WASI_O_CREAT: u16 = 0x0001; 318 pub const __WASI_O_DIRECTORY: u16 = 0x0002; 319 pub const __WASI_O_EXCL: u16 = 0x0004; 320 pub const __WASI_O_TRUNC: u16 = 0x0008; 321 pub const __WASI_PREOPENTYPE_DIR: u8 = 0; 322 pub const __WASI_SOCK_RECV_PEEK: u16 = 0x0001; 323 pub const __WASI_SOCK_RECV_WAITALL: u16 = 0x0002; 324 pub const __WASI_RIGHT_FD_DATASYNC: u64 = 0x0000000000000001; 325 pub const __WASI_RIGHT_FD_READ: u64 = 0x0000000000000002; 326 pub const __WASI_RIGHT_FD_SEEK: u64 = 0x0000000000000004; 327 pub const __WASI_RIGHT_FD_FDSTAT_SET_FLAGS: u64 = 0x0000000000000008; 328 pub const __WASI_RIGHT_FD_SYNC: u64 = 0x0000000000000010; 329 pub const __WASI_RIGHT_FD_TELL: u64 = 0x0000000000000020; 330 pub const __WASI_RIGHT_FD_WRITE: u64 = 0x0000000000000040; 331 pub const __WASI_RIGHT_FD_ADVISE: u64 = 0x0000000000000080; 332 pub const __WASI_RIGHT_FD_ALLOCATE: u64 = 0x0000000000000100; 333 pub const __WASI_RIGHT_PATH_CREATE_DIRECTORY: u64 = 0x0000000000000200; 334 pub const __WASI_RIGHT_PATH_CREATE_FILE: u64 = 0x0000000000000400; 335 pub const __WASI_RIGHT_PATH_LINK_SOURCE: u64 = 0x0000000000000800; 336 pub const __WASI_RIGHT_PATH_LINK_TARGET: u64 = 0x0000000000001000; 337 pub const __WASI_RIGHT_PATH_OPEN: u64 = 0x0000000000002000; 338 pub const __WASI_RIGHT_FD_READDIR: u64 = 0x0000000000004000; 339 pub const __WASI_RIGHT_PATH_READLINK: u64 = 0x0000000000008000; 340 pub const __WASI_RIGHT_PATH_RENAME_SOURCE: u64 = 0x0000000000010000; 341 pub const __WASI_RIGHT_PATH_RENAME_TARGET: u64 = 0x0000000000020000; 342 pub const __WASI_RIGHT_PATH_FILESTAT_GET: u64 = 0x0000000000040000; 343 pub const __WASI_RIGHT_PATH_FILESTAT_SET_SIZE: u64 = 0x0000000000080000; 344 pub const __WASI_RIGHT_PATH_FILESTAT_SET_TIMES: u64 = 0x0000000000100000; 345 pub const __WASI_RIGHT_FD_FILESTAT_GET: u64 = 0x0000000000200000; 346 pub const __WASI_RIGHT_FD_FILESTAT_SET_SIZE: u64 = 0x0000000000400000; 347 pub const __WASI_RIGHT_FD_FILESTAT_SET_TIMES: u64 = 0x0000000000800000; 348 pub const __WASI_RIGHT_PATH_SYMLINK: u64 = 0x0000000001000000; 349 pub const __WASI_RIGHT_PATH_REMOVE_DIRECTORY: u64 = 0x0000000002000000; 350 pub const __WASI_RIGHT_PATH_UNLINK_FILE: u64 = 0x0000000004000000; 351 pub const __WASI_RIGHT_POLL_FD_READWRITE: u64 = 0x0000000008000000; 352 pub const __WASI_RIGHT_SOCK_SHUTDOWN: u64 = 0x0000000010000000; 353 pub const __WASI_SOCK_RECV_DATA_TRUNCATED: u16 = 0x0001; 354 pub const __WASI_SHUT_RD: u8 = 0x01; 355 pub const __WASI_SHUT_WR: u8 = 0x02; 356 pub const __WASI_SIGHUP: u8 = 1; 357 pub const __WASI_SIGINT: u8 = 2; 358 pub const __WASI_SIGQUIT: u8 = 3; 359 pub const __WASI_SIGILL: u8 = 4; 360 pub const __WASI_SIGTRAP: u8 = 5; 361 pub const __WASI_SIGABRT: u8 = 6; 362 pub const __WASI_SIGBUS: u8 = 7; 363 pub const __WASI_SIGFPE: u8 = 8; 364 pub const __WASI_SIGKILL: u8 = 9; 365 pub const __WASI_SIGUSR1: u8 = 10; 366 pub const __WASI_SIGSEGV: u8 = 11; 367 pub const __WASI_SIGUSR2: u8 = 12; 368 pub const __WASI_SIGPIPE: u8 = 13; 369 pub const __WASI_SIGALRM: u8 = 14; 370 pub const __WASI_SIGTERM: u8 = 15; 371 pub const __WASI_SIGCHLD: u8 = 16; 372 pub const __WASI_SIGCONT: u8 = 17; 373 pub const __WASI_SIGSTOP: u8 = 18; 374 pub const __WASI_SIGTSTP: u8 = 19; 375 pub const __WASI_SIGTTIN: u8 = 20; 376 pub const __WASI_SIGTTOU: u8 = 21; 377 pub const __WASI_SIGURG: u8 = 22; 378 pub const __WASI_SIGXCPU: u8 = 23; 379 pub const __WASI_SIGXFSZ: u8 = 24; 380 pub const __WASI_SIGVTALRM: u8 = 25; 381 pub const __WASI_SIGPROF: u8 = 26; 382 pub const __WASI_SIGWINCH: u8 = 27; 383 pub const __WASI_SIGPOLL: u8 = 28; 384 pub const __WASI_SIGPWR: u8 = 29; 385 pub const __WASI_SIGSYS: u8 = 30; 386 pub const __WASI_SUBSCRIPTION_CLOCK_ABSTIME: u16 = 0x0001; 387 pub const __WASI_WHENCE_CUR: u8 = 0; 388 pub const __WASI_WHENCE_END: u8 = 1; 389 pub const __WASI_WHENCE_SET: u8 = 2; 390 391 #[cfg_attr(feature = "rustc-dep-of-std", 392 link(name = "c", kind = "static", 393 cfg(target_feature = "crt-static")))] 394 #[cfg_attr(feature = "rustc-dep-of-std", 395 link(name = "c", cfg(not(target_feature = "crt-static"))))] 396 extern { _Exit(code: c_int) -> !397 pub fn _Exit(code: c_int) -> !; _exit(code: c_int) -> !398 pub fn _exit(code: c_int) -> !; abort() -> !399 pub fn abort() -> !; aligned_alloc(a: size_t, b: size_t) -> *mut c_void400 pub fn aligned_alloc(a: size_t, b: size_t) -> *mut c_void; calloc(amt: size_t, amt2: size_t) -> *mut c_void401 pub fn calloc(amt: size_t, amt2: size_t) -> *mut c_void; exit(code: c_int) -> !402 pub fn exit(code: c_int) -> !; free(ptr: *mut c_void)403 pub fn free(ptr: *mut c_void); getenv(s: *const c_char) -> *mut c_char404 pub fn getenv(s: *const c_char) -> *mut c_char; malloc(amt: size_t) -> *mut c_void405 pub fn malloc(amt: size_t) -> *mut c_void; malloc_usable_size(ptr: *mut c_void) -> size_t406 pub fn malloc_usable_size(ptr: *mut c_void) -> size_t; rand() -> c_int407 pub fn rand() -> c_int; read(fd: c_int, ptr: *mut c_void, size: size_t) -> ssize_t408 pub fn read(fd: c_int, ptr: *mut c_void, size: size_t) -> ssize_t; realloc(ptr: *mut c_void, amt: size_t) -> *mut c_void409 pub fn realloc(ptr: *mut c_void, amt: size_t) -> *mut c_void; setenv(k: *const c_char, v: *const c_char, a: c_int) -> c_int410 pub fn setenv(k: *const c_char, v: *const c_char, a: c_int) -> c_int; unsetenv(k: *const c_char) -> c_int411 pub fn unsetenv(k: *const c_char) -> c_int; write(fd: c_int, ptr: *const c_void, size: size_t) -> ssize_t412 pub fn write(fd: c_int, ptr: *const c_void, size: size_t) -> ssize_t; 413 pub static mut environ: *mut *mut c_char; fopen(a: *const c_char, b: *const c_char) -> *mut FILE414 pub fn fopen(a: *const c_char, b: *const c_char) -> *mut FILE; freopen( a: *const c_char, b: *const c_char, f: *mut FILE, ) -> *mut FILE415 pub fn freopen( 416 a: *const c_char, 417 b: *const c_char, 418 f: *mut FILE, 419 ) -> *mut FILE; fclose(f: *mut FILE) -> c_int420 pub fn fclose(f: *mut FILE) -> c_int; remove(a: *const c_char) -> c_int421 pub fn remove(a: *const c_char) -> c_int; rename(a: *const c_char, b: *const c_char) -> c_int422 pub fn rename(a: *const c_char, b: *const c_char) -> c_int; feof(f: *mut FILE) -> c_int423 pub fn feof(f: *mut FILE) -> c_int; ferror(f: *mut FILE) -> c_int424 pub fn ferror(f: *mut FILE) -> c_int; fflush(f: *mut FILE) -> c_int425 pub fn fflush(f: *mut FILE) -> c_int; clearerr(f: *mut FILE)426 pub fn clearerr(f: *mut FILE); fseek(f: *mut FILE, b: c_long, c: c_int) -> c_int427 pub fn fseek(f: *mut FILE, b: c_long, c: c_int) -> c_int; ftell(f: *mut FILE) -> c_long428 pub fn ftell(f: *mut FILE) -> c_long; rewind(f: *mut FILE)429 pub fn rewind(f: *mut FILE); fgetpos(f: *mut FILE, pos: *mut fpos_t) -> c_int430 pub fn fgetpos(f: *mut FILE, pos: *mut fpos_t) -> c_int; fsetpos(f: *mut FILE, pos: *const fpos_t) -> c_int431 pub fn fsetpos(f: *mut FILE, pos: *const fpos_t) -> c_int; fread( buf: *mut c_void, a: size_t, b: size_t, f: *mut FILE, ) -> size_t432 pub fn fread( 433 buf: *mut c_void, 434 a: size_t, 435 b: size_t, 436 f: *mut FILE, 437 ) -> size_t; fwrite( buf: *const c_void, a: size_t, b: size_t, f: *mut FILE, ) -> size_t438 pub fn fwrite( 439 buf: *const c_void, 440 a: size_t, 441 b: size_t, 442 f: *mut FILE, 443 ) -> size_t; fgetc(f: *mut FILE) -> c_int444 pub fn fgetc(f: *mut FILE) -> c_int; getc(f: *mut FILE) -> c_int445 pub fn getc(f: *mut FILE) -> c_int; getchar() -> c_int446 pub fn getchar() -> c_int; ungetc(a: c_int, f: *mut FILE) -> c_int447 pub fn ungetc(a: c_int, f: *mut FILE) -> c_int; fputc(a: c_int, f: *mut FILE) -> c_int448 pub fn fputc(a: c_int, f: *mut FILE) -> c_int; putc(a: c_int, f: *mut FILE) -> c_int449 pub fn putc(a: c_int, f: *mut FILE) -> c_int; putchar(a: c_int) -> c_int450 pub fn putchar(a: c_int) -> c_int; fputs(a: *const c_char, f: *mut FILE) -> c_int451 pub fn fputs(a: *const c_char, f: *mut FILE) -> c_int; puts(a: *const c_char) -> c_int452 pub fn puts(a: *const c_char) -> c_int; perror(a: *const c_char)453 pub fn perror(a: *const c_char); srand(a: c_uint)454 pub fn srand(a: c_uint); atexit(a: extern fn()) -> c_int455 pub fn atexit(a: extern fn()) -> c_int; at_quick_exit(a: extern fn()) -> c_int456 pub fn at_quick_exit(a: extern fn()) -> c_int; quick_exit(a: c_int) -> !457 pub fn quick_exit(a: c_int) -> !; posix_memalign(a: *mut *mut c_void, b: size_t, c: size_t) -> c_int458 pub fn posix_memalign(a: *mut *mut c_void, b: size_t, c: size_t) -> c_int; rand_r(a: *mut c_uint) -> c_int459 pub fn rand_r(a: *mut c_uint) -> c_int; random() -> c_long460 pub fn random() -> c_long; srandom(a: c_uint)461 pub fn srandom(a: c_uint); putenv(a: *mut c_char) -> c_int462 pub fn putenv(a: *mut c_char) -> c_int; clock() -> clock_t463 pub fn clock() -> clock_t; time(a: *mut time_t) -> time_t464 pub fn time(a: *mut time_t) -> time_t; difftime(a: time_t, b: time_t) -> c_double465 pub fn difftime(a: time_t, b: time_t) -> c_double; mktime(a: *mut tm) -> time_t466 pub fn mktime(a: *mut tm) -> time_t; strftime( a: *mut c_char, b: size_t, c: *const c_char, d: *const tm, ) -> size_t467 pub fn strftime( 468 a: *mut c_char, 469 b: size_t, 470 c: *const c_char, 471 d: *const tm, 472 ) -> size_t; gmtime(a: *const time_t) -> *mut tm473 pub fn gmtime(a: *const time_t) -> *mut tm; gmtime_r(a: *const time_t, b: *mut tm) -> *mut tm474 pub fn gmtime_r(a: *const time_t, b: *mut tm) -> *mut tm; localtime_r(a: *const time_t, b: *mut tm) -> *mut tm475 pub fn localtime_r(a: *const time_t, b: *mut tm) -> *mut tm; asctime_r(a: *const tm, b: *mut c_char) -> *mut c_char476 pub fn asctime_r(a: *const tm, b: *mut c_char) -> *mut c_char; ctime_r(a: *const time_t, b: *mut c_char) -> *mut c_char477 pub fn ctime_r(a: *const time_t, b: *mut c_char) -> *mut c_char; 478 nanosleep(a: *const timespec, b: *mut timespec) -> c_int479 pub fn nanosleep(a: *const timespec, b: *mut timespec) -> c_int; 480 // pub fn clock_getres(a: clockid_t, b: *mut timespec) -> c_int; 481 // pub fn clock_gettime(a: clockid_t, b: *mut timespec) -> c_int; 482 // pub fn clock_nanosleep( 483 // a: clockid_t, 484 // a2: c_int, 485 // b: *const timespec, 486 // c: *mut timespec, 487 // ) -> c_int; 488 __wasilibc_register_preopened_fd( fd: c_int, path: *const c_char, ) -> c_int489 pub fn __wasilibc_register_preopened_fd( 490 fd: c_int, 491 path: *const c_char, 492 ) -> c_int; __wasilibc_fd_renumber(fd: c_int, newfd: c_int) -> c_int493 pub fn __wasilibc_fd_renumber(fd: c_int, newfd: c_int) -> c_int; __wasilibc_rmfileat(fd: c_int, path: *const c_char) -> c_int494 pub fn __wasilibc_rmfileat(fd: c_int, path: *const c_char) -> c_int; __wasilibc_rmdirat(fd: c_int, path: *const c_char) -> c_int495 pub fn __wasilibc_rmdirat(fd: c_int, path: *const c_char) -> c_int; __wasilibc_init_preopen()496 pub fn __wasilibc_init_preopen(); 497 arc4random() -> u32498 pub fn arc4random() -> u32; arc4random_buf(a: *mut c_void, b: size_t)499 pub fn arc4random_buf(a: *mut c_void, b: size_t); arc4random_uniform(a: u32) -> u32500 pub fn arc4random_uniform(a: u32) -> u32; 501 } 502 503 #[link(wasm_import_module = "wasi_unstable")] 504 extern { 505 #[link_name = "clock_res_get"] __wasi_clock_res_get( clock_id: __wasi_clockid_t, resolution: *mut __wasi_timestamp_t, ) -> __wasi_errno_t506 pub fn __wasi_clock_res_get( 507 clock_id: __wasi_clockid_t, 508 resolution: *mut __wasi_timestamp_t, 509 ) -> __wasi_errno_t; 510 #[link_name = "clock_time_get"] __wasi_clock_time_get( clock_id: __wasi_clockid_t, precision: __wasi_timestamp_t, time: *mut __wasi_timestamp_t, ) -> __wasi_errno_t511 pub fn __wasi_clock_time_get( 512 clock_id: __wasi_clockid_t, 513 precision: __wasi_timestamp_t, 514 time: *mut __wasi_timestamp_t, 515 ) -> __wasi_errno_t; 516 #[link_name = "fd_close"] __wasi_fd_close(fd: __wasi_fd_t) -> __wasi_errno_t517 pub fn __wasi_fd_close(fd: __wasi_fd_t) -> __wasi_errno_t; 518 #[link_name = "fd_datasync"] __wasi_fd_datasync(fd: __wasi_fd_t) -> __wasi_errno_t519 pub fn __wasi_fd_datasync(fd: __wasi_fd_t) -> __wasi_errno_t; 520 #[link_name = "fd_pread"] __wasi_fd_pread( fd: __wasi_fd_t, iovs: *const __wasi_iovec_t, iovs_len: size_t, offset: __wasi_filesize_t, nread: *mut size_t, ) -> __wasi_errno_t521 pub fn __wasi_fd_pread( 522 fd: __wasi_fd_t, 523 iovs: *const __wasi_iovec_t, 524 iovs_len: size_t, 525 offset: __wasi_filesize_t, 526 nread: *mut size_t, 527 ) -> __wasi_errno_t; 528 #[link_name = "fd_pwrite"] __wasi_fd_pwrite( fd: __wasi_fd_t, iovs: *const __wasi_ciovec_t, iovs_len: size_t, offset: __wasi_filesize_t, nwritten: *mut size_t, ) -> __wasi_errno_t529 pub fn __wasi_fd_pwrite( 530 fd: __wasi_fd_t, 531 iovs: *const __wasi_ciovec_t, 532 iovs_len: size_t, 533 offset: __wasi_filesize_t, 534 nwritten: *mut size_t, 535 ) -> __wasi_errno_t; 536 #[link_name = "fd_read"] __wasi_fd_read( fd: __wasi_fd_t, iovs: *const __wasi_iovec_t, iovs_len: size_t, nread: *mut size_t, ) -> __wasi_errno_t537 pub fn __wasi_fd_read( 538 fd: __wasi_fd_t, 539 iovs: *const __wasi_iovec_t, 540 iovs_len: size_t, 541 nread: *mut size_t, 542 ) -> __wasi_errno_t; 543 #[link_name = "fd_renumber"] __wasi_fd_renumber( from: __wasi_fd_t, to: __wasi_fd_t, ) -> __wasi_errno_t544 pub fn __wasi_fd_renumber( 545 from: __wasi_fd_t, 546 to: __wasi_fd_t, 547 ) -> __wasi_errno_t; 548 #[link_name = "fd_seek"] __wasi_fd_seek( fd: __wasi_fd_t, offset: __wasi_filedelta_t, whence: __wasi_whence_t, newoffset: *mut __wasi_filesize_t, ) -> __wasi_errno_t549 pub fn __wasi_fd_seek( 550 fd: __wasi_fd_t, 551 offset: __wasi_filedelta_t, 552 whence: __wasi_whence_t, 553 newoffset: *mut __wasi_filesize_t, 554 ) -> __wasi_errno_t; 555 #[link_name = "fd_tell"] __wasi_fd_tell( fd: __wasi_fd_t, newoffset: *mut __wasi_filesize_t, ) -> __wasi_errno_t556 pub fn __wasi_fd_tell( 557 fd: __wasi_fd_t, 558 newoffset: *mut __wasi_filesize_t, 559 ) -> __wasi_errno_t; 560 #[link_name = "fd_fdstat_get"] __wasi_fd_fdstat_get( fd: __wasi_fd_t, buf: *mut __wasi_fdstat_t, ) -> __wasi_errno_t561 pub fn __wasi_fd_fdstat_get( 562 fd: __wasi_fd_t, 563 buf: *mut __wasi_fdstat_t, 564 ) -> __wasi_errno_t; 565 #[link_name = "fd_fdstat_set_flags"] __wasi_fd_fdstat_set_flags( fd: __wasi_fd_t, flags: __wasi_fdflags_t, ) -> __wasi_errno_t566 pub fn __wasi_fd_fdstat_set_flags( 567 fd: __wasi_fd_t, 568 flags: __wasi_fdflags_t, 569 ) -> __wasi_errno_t; 570 #[link_name = "fd_fdstat_set_rights"] __wasi_fd_fdstat_set_rights( fd: __wasi_fd_t, fs_rights_base: __wasi_rights_t, fs_rights_inheriting: __wasi_rights_t, ) -> __wasi_errno_t571 pub fn __wasi_fd_fdstat_set_rights( 572 fd: __wasi_fd_t, 573 fs_rights_base: __wasi_rights_t, 574 fs_rights_inheriting: __wasi_rights_t, 575 ) -> __wasi_errno_t; 576 #[link_name = "fd_sync"] __wasi_fd_sync(fd: __wasi_fd_t) -> __wasi_errno_t577 pub fn __wasi_fd_sync(fd: __wasi_fd_t) -> __wasi_errno_t; 578 #[link_name = "fd_write"] __wasi_fd_write( fd: __wasi_fd_t, iovs: *const __wasi_ciovec_t, iovs_len: size_t, nwritten: *mut size_t, ) -> __wasi_errno_t579 pub fn __wasi_fd_write( 580 fd: __wasi_fd_t, 581 iovs: *const __wasi_ciovec_t, 582 iovs_len: size_t, 583 nwritten: *mut size_t, 584 ) -> __wasi_errno_t; 585 #[link_name = "fd_advise"] __wasi_fd_advise( fd: __wasi_fd_t, offset: __wasi_filesize_t, len: __wasi_filesize_t, advice: __wasi_advice_t, ) -> __wasi_errno_t586 pub fn __wasi_fd_advise( 587 fd: __wasi_fd_t, 588 offset: __wasi_filesize_t, 589 len: __wasi_filesize_t, 590 advice: __wasi_advice_t, 591 ) -> __wasi_errno_t; 592 #[link_name = "fd_allocate"] __wasi_fd_allocate( fd: __wasi_fd_t, offset: __wasi_filesize_t, len: __wasi_filesize_t, ) -> __wasi_errno_t593 pub fn __wasi_fd_allocate( 594 fd: __wasi_fd_t, 595 offset: __wasi_filesize_t, 596 len: __wasi_filesize_t, 597 ) -> __wasi_errno_t; 598 #[link_name = "path_create_directory"] __wasi_path_create_directory( fd: __wasi_fd_t, path: *const ::c_char, path_len: size_t, ) -> __wasi_errno_t599 pub fn __wasi_path_create_directory( 600 fd: __wasi_fd_t, 601 path: *const ::c_char, 602 path_len: size_t, 603 ) -> __wasi_errno_t; 604 #[link_name = "path_link"] __wasi_path_link( old_fd: __wasi_fd_t, old_flags: __wasi_lookupflags_t, old_path: *const ::c_char, old_path_len: size_t, new_fd: __wasi_fd_t, new_path: *const ::c_char, new_path_len: size_t, ) -> __wasi_errno_t605 pub fn __wasi_path_link( 606 old_fd: __wasi_fd_t, 607 old_flags: __wasi_lookupflags_t, 608 old_path: *const ::c_char, 609 old_path_len: size_t, 610 new_fd: __wasi_fd_t, 611 new_path: *const ::c_char, 612 new_path_len: size_t, 613 ) -> __wasi_errno_t; 614 #[link_name = "path_open"] __wasi_path_open( dirfd: __wasi_fd_t, dirflags: __wasi_lookupflags_t, path: *const ::c_char, path_len: size_t, oflags: __wasi_oflags_t, fs_rights_base: __wasi_rights_t, fs_rights_inheriting: __wasi_rights_t, fs_flags: __wasi_fdflags_t, fd: *mut __wasi_fd_t, ) -> __wasi_errno_t615 pub fn __wasi_path_open( 616 dirfd: __wasi_fd_t, 617 dirflags: __wasi_lookupflags_t, 618 path: *const ::c_char, 619 path_len: size_t, 620 oflags: __wasi_oflags_t, 621 fs_rights_base: __wasi_rights_t, 622 fs_rights_inheriting: __wasi_rights_t, 623 fs_flags: __wasi_fdflags_t, 624 fd: *mut __wasi_fd_t, 625 ) -> __wasi_errno_t; 626 #[link_name = "fd_readdir"] __wasi_fd_readdir( fd: __wasi_fd_t, buf: *mut ::c_void, buf_len: size_t, cookie: __wasi_dircookie_t, bufused: *mut size_t, ) -> __wasi_errno_t627 pub fn __wasi_fd_readdir( 628 fd: __wasi_fd_t, 629 buf: *mut ::c_void, 630 buf_len: size_t, 631 cookie: __wasi_dircookie_t, 632 bufused: *mut size_t, 633 ) -> __wasi_errno_t; 634 #[link_name = "path_readlink"] __wasi_path_readlink( fd: __wasi_fd_t, path: *const ::c_char, path_len: size_t, buf: *mut ::c_char, buf_len: size_t, bufused: *mut size_t, ) -> __wasi_errno_t635 pub fn __wasi_path_readlink( 636 fd: __wasi_fd_t, 637 path: *const ::c_char, 638 path_len: size_t, 639 buf: *mut ::c_char, 640 buf_len: size_t, 641 bufused: *mut size_t, 642 ) -> __wasi_errno_t; 643 #[link_name = "path_rename"] __wasi_path_rename( old_fd: __wasi_fd_t, old_path: *const ::c_char, old_path_len: size_t, new_fd: __wasi_fd_t, new_path: *const ::c_char, new_path_len: size_t, ) -> __wasi_errno_t644 pub fn __wasi_path_rename( 645 old_fd: __wasi_fd_t, 646 old_path: *const ::c_char, 647 old_path_len: size_t, 648 new_fd: __wasi_fd_t, 649 new_path: *const ::c_char, 650 new_path_len: size_t, 651 ) -> __wasi_errno_t; 652 #[link_name = "fd_filestat_get"] __wasi_fd_filestat_get( fd: __wasi_fd_t, buf: *mut __wasi_filestat_t, ) -> __wasi_errno_t653 pub fn __wasi_fd_filestat_get( 654 fd: __wasi_fd_t, 655 buf: *mut __wasi_filestat_t, 656 ) -> __wasi_errno_t; 657 #[link_name = "fd_filestat_set_times"] __wasi_fd_filestat_set_times( fd: __wasi_fd_t, st_atim: __wasi_timestamp_t, st_mtim: __wasi_timestamp_t, fstflags: __wasi_fstflags_t, ) -> __wasi_errno_t658 pub fn __wasi_fd_filestat_set_times( 659 fd: __wasi_fd_t, 660 st_atim: __wasi_timestamp_t, 661 st_mtim: __wasi_timestamp_t, 662 fstflags: __wasi_fstflags_t, 663 ) -> __wasi_errno_t; 664 #[link_name = "fd_filestat_set_size"] __wasi_fd_filestat_set_size( fd: __wasi_fd_t, st_size: __wasi_filesize_t, ) -> __wasi_errno_t665 pub fn __wasi_fd_filestat_set_size( 666 fd: __wasi_fd_t, 667 st_size: __wasi_filesize_t, 668 ) -> __wasi_errno_t; 669 #[link_name = "path_filestat_get"] __wasi_path_filestat_get( fd: __wasi_fd_t, flags: __wasi_lookupflags_t, path: *const ::c_char, path_len: size_t, buf: *mut __wasi_filestat_t, ) -> __wasi_errno_t670 pub fn __wasi_path_filestat_get( 671 fd: __wasi_fd_t, 672 flags: __wasi_lookupflags_t, 673 path: *const ::c_char, 674 path_len: size_t, 675 buf: *mut __wasi_filestat_t, 676 ) -> __wasi_errno_t; 677 #[link_name = "path_filestat_set_times"] __wasi_path_filestat_set_times( fd: __wasi_fd_t, flags: __wasi_lookupflags_t, path: *const ::c_char, path_len: size_t, st_atim: __wasi_timestamp_t, st_mtim: __wasi_timestamp_t, fstflags: __wasi_fstflags_t, ) -> __wasi_errno_t678 pub fn __wasi_path_filestat_set_times( 679 fd: __wasi_fd_t, 680 flags: __wasi_lookupflags_t, 681 path: *const ::c_char, 682 path_len: size_t, 683 st_atim: __wasi_timestamp_t, 684 st_mtim: __wasi_timestamp_t, 685 fstflags: __wasi_fstflags_t, 686 ) -> __wasi_errno_t; 687 #[link_name = "path_symlink"] __wasi_path_symlink( old_path: *const ::c_char, old_path_len: size_t, fd: __wasi_fd_t, new_path: *const ::c_char, new_path_len: size_t, ) -> __wasi_errno_t688 pub fn __wasi_path_symlink( 689 old_path: *const ::c_char, 690 old_path_len: size_t, 691 fd: __wasi_fd_t, 692 new_path: *const ::c_char, 693 new_path_len: size_t, 694 ) -> __wasi_errno_t; 695 #[link_name = "path_unlink_file"] __wasi_path_unlink_file( fd: __wasi_fd_t, path: *const ::c_char, path_len: size_t, ) -> __wasi_errno_t696 pub fn __wasi_path_unlink_file( 697 fd: __wasi_fd_t, 698 path: *const ::c_char, 699 path_len: size_t, 700 ) -> __wasi_errno_t; 701 #[link_name = "path_remove_directory"] __wasi_path_remove_directory( fd: __wasi_fd_t, path: *const ::c_char, path_len: size_t, ) -> __wasi_errno_t702 pub fn __wasi_path_remove_directory( 703 fd: __wasi_fd_t, 704 path: *const ::c_char, 705 path_len: size_t, 706 ) -> __wasi_errno_t; 707 #[link_name = "poll_oneoff"] __wasi_poll_oneoff( in_: *const __wasi_subscription_t, out: *mut __wasi_event_t, nsubscriptions: size_t, nevents: *mut size_t, ) -> __wasi_errno_t708 pub fn __wasi_poll_oneoff( 709 in_: *const __wasi_subscription_t, 710 out: *mut __wasi_event_t, 711 nsubscriptions: size_t, 712 nevents: *mut size_t, 713 ) -> __wasi_errno_t; 714 #[link_name = "proc_exit"] __wasi_proc_exit(rval: __wasi_exitcode_t)715 pub fn __wasi_proc_exit(rval: __wasi_exitcode_t); 716 #[link_name = "proc_raise"] __wasi_proc_raise(sig: __wasi_signal_t) -> __wasi_errno_t717 pub fn __wasi_proc_raise(sig: __wasi_signal_t) -> __wasi_errno_t; 718 #[link_name = "random_get"] __wasi_random_get( buf: *mut ::c_void, buf_len: size_t, ) -> __wasi_errno_t719 pub fn __wasi_random_get( 720 buf: *mut ::c_void, 721 buf_len: size_t, 722 ) -> __wasi_errno_t; 723 #[link_name = "sock_recv"] __wasi_sock_recv( sock: __wasi_fd_t, ri_data: *const __wasi_iovec_t, ri_data_len: size_t, ri_flags: __wasi_riflags_t, ro_datalen: *mut size_t, ro_flags: *mut __wasi_roflags_t, ) -> __wasi_errno_t724 pub fn __wasi_sock_recv( 725 sock: __wasi_fd_t, 726 ri_data: *const __wasi_iovec_t, 727 ri_data_len: size_t, 728 ri_flags: __wasi_riflags_t, 729 ro_datalen: *mut size_t, 730 ro_flags: *mut __wasi_roflags_t, 731 ) -> __wasi_errno_t; 732 #[link_name = "sock_send"] __wasi_sock_send( sock: __wasi_fd_t, si_data: *const __wasi_ciovec_t, si_data_len: size_t, si_flags: __wasi_siflags_t, so_datalen: *mut size_t, ) -> __wasi_errno_t733 pub fn __wasi_sock_send( 734 sock: __wasi_fd_t, 735 si_data: *const __wasi_ciovec_t, 736 si_data_len: size_t, 737 si_flags: __wasi_siflags_t, 738 so_datalen: *mut size_t, 739 ) -> __wasi_errno_t; 740 #[link_name = "sock_shutdown"] __wasi_sock_shutdown( sock: __wasi_fd_t, how: __wasi_sdflags_t, ) -> __wasi_errno_t741 pub fn __wasi_sock_shutdown( 742 sock: __wasi_fd_t, 743 how: __wasi_sdflags_t, 744 ) -> __wasi_errno_t; 745 #[link_name = "sched_yield"] __wasi_sched_yield() -> __wasi_errno_t746 pub fn __wasi_sched_yield() -> __wasi_errno_t; 747 #[link_name = "args_get"] __wasi_args_get( argv: *mut *mut c_char, argv_buf: *mut c_char, ) -> __wasi_errno_t748 pub fn __wasi_args_get( 749 argv: *mut *mut c_char, 750 argv_buf: *mut c_char, 751 ) -> __wasi_errno_t; 752 #[link_name = "args_sizes_get"] __wasi_args_sizes_get( argc: *mut size_t, argv_buf_size: *mut size_t, ) -> __wasi_errno_t753 pub fn __wasi_args_sizes_get( 754 argc: *mut size_t, 755 argv_buf_size: *mut size_t, 756 ) -> __wasi_errno_t; 757 #[link_name = "environ_get"] __wasi_environ_get( environ: *mut *mut c_char, environ_buf: *mut c_char, ) -> __wasi_errno_t758 pub fn __wasi_environ_get( 759 environ: *mut *mut c_char, 760 environ_buf: *mut c_char, 761 ) -> __wasi_errno_t; 762 #[link_name = "environ_sizes_get"] __wasi_environ_sizes_get( environ_count: *mut size_t, environ_buf_size: *mut size_t, ) -> __wasi_errno_t763 pub fn __wasi_environ_sizes_get( 764 environ_count: *mut size_t, 765 environ_buf_size: *mut size_t, 766 ) -> __wasi_errno_t; 767 #[link_name = "fd_prestat_get"] __wasi_fd_prestat_get( fd: __wasi_fd_t, buf: *mut __wasi_prestat_t, ) -> __wasi_errno_t768 pub fn __wasi_fd_prestat_get( 769 fd: __wasi_fd_t, 770 buf: *mut __wasi_prestat_t, 771 ) -> __wasi_errno_t; 772 #[link_name = "fd_prestat_dir_name"] __wasi_fd_prestat_dir_name( fd: __wasi_fd_t, path: *mut c_char, path_len: size_t, ) -> __wasi_errno_t773 pub fn __wasi_fd_prestat_dir_name( 774 fd: __wasi_fd_t, 775 path: *mut c_char, 776 path_len: size_t, 777 ) -> __wasi_errno_t; 778 } 779