1 //! Interface to the [SOLID] C library 2 //! 3 //! [SOLID]: https://solid.kmckk.com/ 4 5 pub type c_schar = i8; 6 pub type c_uchar = u8; 7 pub type c_short = i16; 8 pub type c_ushort = u16; 9 pub type c_int = i32; 10 pub type c_uint = u32; 11 pub type c_float = f32; 12 pub type c_double = f64; 13 pub type c_longlong = i64; 14 pub type c_ulonglong = u64; 15 pub type intmax_t = i64; 16 pub type uintmax_t = u64; 17 18 pub type uintptr_t = usize; 19 pub type intptr_t = isize; 20 pub type ptrdiff_t = isize; 21 pub type size_t = ::uintptr_t; 22 pub type ssize_t = ::intptr_t; 23 24 pub type clock_t = c_uint; 25 pub type time_t = i64; 26 pub type clockid_t = c_int; 27 pub type timer_t = c_int; 28 pub type suseconds_t = c_int; 29 pub type useconds_t = c_uint; 30 31 pub type sighandler_t = size_t; 32 33 // sys/ansi.h 34 pub type __caddr_t = *mut c_char; 35 pub type __gid_t = u32; 36 pub type __in_addr_t = u32; 37 pub type __in_port_t = u16; 38 pub type __mode_t = u32; 39 pub type __off_t = i64; 40 pub type __pid_t = i32; 41 pub type __sa_family_t = u8; 42 pub type __socklen_t = c_uint; 43 pub type __uid_t = u32; 44 pub type __fsblkcnt_t = u64; 45 pub type __fsfilcnt_t = u64; 46 47 // locale.h 48 pub type locale_t = usize; 49 50 // nl_types.h 51 pub type nl_item = c_long; 52 53 // sys/types.h 54 pub type __va_list = *mut c_char; 55 pub type u_int8_t = u8; 56 pub type u_int16_t = u16; 57 pub type u_int32_t = u32; 58 pub type u_int64_t = u64; 59 pub type u_char = c_uchar; 60 pub type u_short = c_ushort; 61 pub type u_int = c_uint; 62 pub type u_long = c_ulong; 63 pub type unchar = c_uchar; 64 pub type ushort = c_ushort; 65 pub type uint = c_uint; 66 pub type ulong = c_ulong; 67 pub type u_quad_t = u64; 68 pub type quad_t = i64; 69 pub type qaddr_t = *mut quad_t; 70 pub type longlong_t = i64; 71 pub type u_longlong_t = u64; 72 pub type blkcnt_t = i64; 73 pub type blksize_t = i32; 74 pub type fsblkcnt_t = __fsblkcnt_t; 75 pub type fsfilcnt_t = __fsfilcnt_t; 76 pub type caddr_t = __caddr_t; 77 pub type daddr_t = i64; 78 pub type dev_t = u64; 79 pub type fixpt_t = u32; 80 pub type gid_t = __gid_t; 81 pub type idtype_t = c_int; 82 pub type id_t = u32; 83 pub type ino_t = u64; 84 pub type key_t = c_long; 85 pub type mode_t = __mode_t; 86 pub type nlink_t = u32; 87 pub type off_t = __off_t; 88 pub type pid_t = __pid_t; 89 pub type lwpid_t = i32; 90 pub type rlim_t = u64; 91 pub type segsz_t = i32; 92 pub type swblk_t = i32; 93 pub type mqd_t = c_int; 94 pub type cpuid_t = c_ulong; 95 pub type psetid_t = c_int; 96 97 s! { 98 // stat.h 99 pub struct stat { 100 pub st_dev: dev_t, 101 pub st_ino: ino_t, 102 pub st_mode: c_short, 103 pub st_nlink: c_short, 104 pub st_uid: c_short, 105 pub st_gid: c_short, 106 pub st_rdev: dev_t, 107 pub st_size: off_t, 108 pub st_atime: time_t, 109 pub st_mtime: time_t, 110 pub st_ctime: time_t, 111 pub st_blksize: blksize_t, 112 } 113 114 // time.h 115 pub struct tm { 116 pub tm_sec: c_int, 117 pub tm_min: c_int, 118 pub tm_hour: c_int, 119 pub tm_mday: c_int, 120 pub tm_mon: c_int, 121 pub tm_year: c_int, 122 pub tm_wday: c_int, 123 pub tm_yday: c_int, 124 pub tm_isdst: c_int, 125 pub tm_gmtoff: c_long, 126 pub tm_zone: *mut c_char, 127 } 128 129 // stdlib.h 130 pub struct qdiv_t { 131 pub quot: quad_t, 132 pub rem: quad_t, 133 } 134 pub struct lldiv_t { 135 pub quot: c_longlong, 136 pub rem: c_longlong, 137 } 138 pub struct div_t { 139 pub quot: c_int, 140 pub rem: c_int, 141 } 142 pub struct ldiv_t { 143 pub quot: c_long, 144 pub rem: c_long, 145 } 146 147 // locale.h 148 pub struct lconv { 149 pub decimal_point: *mut c_char, 150 pub thousands_sep: *mut c_char, 151 pub grouping: *mut c_char, 152 pub int_curr_symbol: *mut c_char, 153 pub currency_symbol: *mut c_char, 154 pub mon_decimal_point: *mut c_char, 155 pub mon_thousands_sep: *mut c_char, 156 pub mon_grouping: *mut c_char, 157 pub positive_sign: *mut c_char, 158 pub negative_sign: *mut c_char, 159 pub int_frac_digits: c_char, 160 pub frac_digits: c_char, 161 pub p_cs_precedes: c_char, 162 pub p_sep_by_space: c_char, 163 pub n_cs_precedes: c_char, 164 pub n_sep_by_space: c_char, 165 pub p_sign_posn: c_char, 166 pub n_sign_posn: c_char, 167 pub int_p_cs_precedes: c_char, 168 pub int_n_cs_precedes: c_char, 169 pub int_p_sep_by_space: c_char, 170 pub int_n_sep_by_space: c_char, 171 pub int_p_sign_posn: c_char, 172 pub int_n_sign_posn: c_char, 173 } 174 175 pub struct iovec { 176 pub iov_base: *mut c_void, 177 pub iov_len: size_t, 178 } 179 180 pub struct timeval { 181 pub tv_sec: c_long, 182 pub tv_usec: c_long, 183 } 184 } 185 186 pub const INT_MIN: c_int = -2147483648; 187 pub const INT_MAX: c_int = 2147483647; 188 189 pub const EXIT_FAILURE: c_int = 1; 190 pub const EXIT_SUCCESS: c_int = 0; 191 pub const RAND_MAX: c_int = 0x7fffffff; 192 pub const EOF: c_int = -1; 193 pub const SEEK_SET: c_int = 0; 194 pub const SEEK_CUR: c_int = 1; 195 pub const SEEK_END: c_int = 2; 196 pub const _IOFBF: c_int = 0; 197 pub const _IONBF: c_int = 2; 198 pub const _IOLBF: c_int = 1; 199 pub const BUFSIZ: c_uint = 1024; 200 pub const FOPEN_MAX: c_uint = 20; 201 pub const FILENAME_MAX: c_uint = 1024; 202 203 pub const O_RDONLY: c_int = 1; 204 pub const O_WRONLY: c_int = 2; 205 pub const O_RDWR: c_int = 4; 206 pub const O_APPEND: c_int = 8; 207 pub const O_CREAT: c_int = 0x10; 208 pub const O_EXCL: c_int = 0x400; 209 pub const O_TEXT: c_int = 0x100; 210 pub const O_BINARY: c_int = 0x200; 211 pub const O_TRUNC: c_int = 0x20; 212 pub const S_IEXEC: c_short = 0x0040; 213 pub const S_IWRITE: c_short = 0x0080; 214 pub const S_IREAD: c_short = 0x0100; 215 pub const S_IFCHR: c_short = 0x2000; 216 pub const S_IFDIR: c_short = 0x4000; 217 pub const S_IFMT: c_short = 0o160000; 218 pub const S_IFIFO: c_short = 0o0010000; 219 pub const S_IFBLK: c_short = 0o0060000; 220 pub const S_IFREG: c_short = 0o0100000; 221 222 pub const LC_ALL: c_int = 0; 223 pub const LC_COLLATE: c_int = 1; 224 pub const LC_CTYPE: c_int = 2; 225 pub const LC_MONETARY: c_int = 3; 226 pub const LC_NUMERIC: c_int = 4; 227 pub const LC_TIME: c_int = 5; 228 pub const LC_MESSAGES: c_int = 6; 229 pub const _LC_LAST: c_int = 7; 230 231 pub const EPERM: c_int = 1; 232 pub const ENOENT: c_int = 2; 233 pub const ESRCH: c_int = 3; 234 pub const EINTR: c_int = 4; 235 pub const EIO: c_int = 5; 236 pub const ENXIO: c_int = 6; 237 pub const E2BIG: c_int = 7; 238 pub const ENOEXEC: c_int = 8; 239 pub const EBADF: c_int = 9; 240 pub const ECHILD: c_int = 10; 241 pub const EAGAIN: c_int = 11; 242 pub const ENOMEM: c_int = 12; 243 pub const EACCES: c_int = 13; 244 pub const EFAULT: c_int = 14; 245 pub const ENOTBLK: c_int = 15; 246 pub const EBUSY: c_int = 16; 247 pub const EEXIST: c_int = 17; 248 pub const EXDEV: c_int = 18; 249 pub const ENODEV: c_int = 19; 250 pub const ENOTDIR: c_int = 20; 251 pub const EISDIR: c_int = 21; 252 pub const EINVAL: c_int = 22; 253 pub const ENFILE: c_int = 23; 254 pub const EMFILE: c_int = 24; 255 pub const ENOTTY: c_int = 25; 256 pub const ETXTBSY: c_int = 26; 257 pub const EFBIG: c_int = 27; 258 pub const ENOSPC: c_int = 28; 259 pub const ESPIPE: c_int = 29; 260 pub const EROFS: c_int = 30; 261 pub const EMLINK: c_int = 31; 262 pub const EPIPE: c_int = 32; 263 pub const EDOM: c_int = 33; 264 pub const ERANGE: c_int = 34; 265 266 pub const EDEADLK: c_int = 35; 267 pub const ENAMETOOLONG: c_int = 36; 268 pub const ENOLCK: c_int = 37; 269 pub const ENOSYS: c_int = 38; 270 pub const ENOTEMPTY: c_int = 39; 271 pub const ELOOP: c_int = 40; 272 pub const EWOULDBLOCK: c_int = EAGAIN; 273 pub const ENOMSG: c_int = 42; 274 pub const EIDRM: c_int = 43; 275 pub const ECHRNG: c_int = 44; 276 pub const EL2NSYNC: c_int = 45; 277 pub const EL3HLT: c_int = 46; 278 pub const EL3RST: c_int = 47; 279 pub const ELNRNG: c_int = 48; 280 pub const EUNATCH: c_int = 49; 281 pub const ENOCSI: c_int = 50; 282 pub const EL2HLT: c_int = 51; 283 pub const EBADE: c_int = 52; 284 pub const EBADR: c_int = 53; 285 pub const EXFULL: c_int = 54; 286 pub const ENOANO: c_int = 55; 287 pub const EBADRQC: c_int = 56; 288 pub const EBADSLT: c_int = 57; 289 290 pub const EDEADLOCK: c_int = EDEADLK; 291 292 pub const EBFONT: c_int = 59; 293 pub const ENOSTR: c_int = 60; 294 pub const ENODATA: c_int = 61; 295 pub const ETIME: c_int = 62; 296 pub const ENOSR: c_int = 63; 297 pub const ENONET: c_int = 64; 298 pub const ENOPKG: c_int = 65; 299 pub const EREMOTE: c_int = 66; 300 pub const ENOLINK: c_int = 67; 301 pub const EADV: c_int = 68; 302 pub const ESRMNT: c_int = 69; 303 pub const ECOMM: c_int = 70; 304 pub const EPROTO: c_int = 71; 305 pub const EMULTIHOP: c_int = 72; 306 pub const EDOTDOT: c_int = 73; 307 pub const EBADMSG: c_int = 74; 308 pub const EOVERFLOW: c_int = 75; 309 pub const ENOTUNIQ: c_int = 76; 310 pub const EBADFD: c_int = 77; 311 pub const EREMCHG: c_int = 78; 312 pub const ELIBACC: c_int = 79; 313 pub const ELIBBAD: c_int = 80; 314 pub const ELIBSCN: c_int = 81; 315 pub const ELIBMAX: c_int = 82; 316 pub const ELIBEXEC: c_int = 83; 317 pub const EILSEQ: c_int = 84; 318 pub const ERESTART: c_int = 85; 319 pub const ESTRPIPE: c_int = 86; 320 pub const EUSERS: c_int = 87; 321 pub const ENOTSOCK: c_int = 88; 322 pub const EDESTADDRREQ: c_int = 89; 323 pub const EMSGSIZE: c_int = 90; 324 pub const EPROTOTYPE: c_int = 91; 325 pub const ENOPROTOOPT: c_int = 92; 326 pub const EPROTONOSUPPORT: c_int = 93; 327 pub const ESOCKTNOSUPPORT: c_int = 94; 328 pub const EOPNOTSUPP: c_int = 95; 329 pub const EPFNOSUPPORT: c_int = 96; 330 pub const EAFNOSUPPORT: c_int = 97; 331 pub const EADDRINUSE: c_int = 98; 332 pub const EADDRNOTAVAIL: c_int = 99; 333 pub const ENETDOWN: c_int = 100; 334 pub const ENETUNREACH: c_int = 101; 335 pub const ENETRESET: c_int = 102; 336 pub const ECONNABORTED: c_int = 103; 337 pub const ECONNRESET: c_int = 104; 338 pub const ENOBUFS: c_int = 105; 339 pub const EISCONN: c_int = 106; 340 pub const ENOTCONN: c_int = 107; 341 pub const ESHUTDOWN: c_int = 108; 342 pub const ETOOMANYREFS: c_int = 109; 343 pub const ETIMEDOUT: c_int = 110; 344 pub const ECONNREFUSED: c_int = 111; 345 pub const EHOSTDOWN: c_int = 112; 346 pub const EHOSTUNREACH: c_int = 113; 347 pub const EALREADY: c_int = 114; 348 pub const EINPROGRESS: c_int = 115; 349 pub const ESTALE: c_int = 116; 350 pub const EUCLEAN: c_int = 117; 351 pub const ENOTNAM: c_int = 118; 352 pub const ENAVAIL: c_int = 119; 353 pub const EISNAM: c_int = 120; 354 pub const EREMOTEIO: c_int = 121; 355 pub const EDQUOT: c_int = 122; 356 357 pub const ENOMEDIUM: c_int = 123; 358 pub const EMEDIUMTYPE: c_int = 124; 359 pub const ECANCELED: c_int = 125; 360 pub const ENOKEY: c_int = 126; 361 pub const EKEYEXPIRED: c_int = 127; 362 pub const EKEYREVOKED: c_int = 128; 363 pub const EKEYREJECTED: c_int = 129; 364 365 pub const EOWNERDEAD: c_int = 130; 366 pub const ENOTRECOVERABLE: c_int = 131; 367 368 pub const ENOTSUP: c_int = 132; 369 pub const EFTYPE: c_int = 133; 370 371 // signal codes 372 pub const SIGHUP: c_int = 1; 373 pub const SIGINT: c_int = 2; 374 pub const SIGQUIT: c_int = 3; 375 pub const SIGILL: c_int = 4; 376 pub const SIGTRAP: c_int = 5; 377 pub const SIGABRT: c_int = 6; 378 pub const SIGIOT: c_int = SIGABRT; 379 pub const SIGEMT: c_int = 7; 380 pub const SIGFPE: c_int = 8; 381 pub const SIGKILL: c_int = 9; 382 pub const SIGBUS: c_int = 10; 383 pub const SIGSEGV: c_int = 11; 384 pub const SIGSYS: c_int = 12; 385 pub const SIGPIPE: c_int = 13; 386 pub const SIGALRM: c_int = 14; 387 pub const SIGTERM: c_int = 15; 388 pub const SIGURG: c_int = 16; 389 pub const SIGSTOP: c_int = 17; 390 pub const SIGTSTP: c_int = 18; 391 pub const SIGCONT: c_int = 19; 392 pub const SIGCHLD: c_int = 20; 393 pub const SIGTTIN: c_int = 21; 394 pub const SIGTTOU: c_int = 22; 395 pub const SIGIO: c_int = 23; 396 pub const SIGXCPU: c_int = 24; 397 pub const SIGXFSZ: c_int = 25; 398 pub const SIGVTALRM: c_int = 26; 399 pub const SIGPROF: c_int = 27; 400 pub const SIGWINCH: c_int = 28; 401 pub const SIGINFO: c_int = 29; 402 pub const SIGUSR1: c_int = 30; 403 pub const SIGUSR2: c_int = 31; 404 pub const SIGPWR: c_int = 32; 405 406 #[cfg_attr(feature = "extra_traits", derive(Debug))] 407 pub enum FILE {} 408 impl ::Copy for FILE {} 409 impl ::Clone for FILE { clonenull410 fn clone(&self) -> FILE { 411 *self 412 } 413 } 414 #[cfg_attr(feature = "extra_traits", derive(Debug))] 415 pub enum fpos_t {} 416 impl ::Copy for fpos_t {} 417 impl ::Clone for fpos_t { clonenull418 fn clone(&self) -> fpos_t { 419 *self 420 } 421 } 422 423 extern "C" { 424 // ctype.h isalnumnull425 pub fn isalnum(c: c_int) -> c_int; isalphanull426 pub fn isalpha(c: c_int) -> c_int; iscntrlnull427 pub fn iscntrl(c: c_int) -> c_int; isdigitnull428 pub fn isdigit(c: c_int) -> c_int; isgraphnull429 pub fn isgraph(c: c_int) -> c_int; islowernull430 pub fn islower(c: c_int) -> c_int; isprintnull431 pub fn isprint(c: c_int) -> c_int; ispunctnull432 pub fn ispunct(c: c_int) -> c_int; isspacenull433 pub fn isspace(c: c_int) -> c_int; isuppernull434 pub fn isupper(c: c_int) -> c_int; isxdigitnull435 pub fn isxdigit(c: c_int) -> c_int; isblanknull436 pub fn isblank(c: c_int) -> c_int; tolowernull437 pub fn tolower(c: c_int) -> c_int; touppernull438 pub fn toupper(c: c_int) -> c_int; 439 440 // stdio.h __get_stdio_filenull441 pub fn __get_stdio_file(fileno: c_int) -> *mut FILE; clearerrnull442 pub fn clearerr(arg1: *mut FILE); fclosenull443 pub fn fclose(arg1: *mut FILE) -> c_int; feofnull444 pub fn feof(arg1: *mut FILE) -> c_int; ferrornull445 pub fn ferror(arg1: *mut FILE) -> c_int; fflushnull446 pub fn fflush(arg1: *mut FILE) -> c_int; fgetcnull447 pub fn fgetc(arg1: *mut FILE) -> c_int; fgetsnull448 pub fn fgets(arg1: *mut c_char, arg2: c_int, arg3: *mut FILE) -> *mut c_char; fopennull449 pub fn fopen(arg1: *const c_char, arg2: *const c_char) -> *mut FILE; fprintfnull450 pub fn fprintf(arg1: *mut FILE, arg2: *const c_char, ...) -> c_int; fputcnull451 pub fn fputc(arg1: c_int, arg2: *mut FILE) -> c_int; fputsnull452 pub fn fputs(arg1: *const c_char, arg2: *mut FILE) -> c_int; freadnull453 pub fn fread(arg1: *mut c_void, arg2: size_t, arg3: size_t, arg4: *mut FILE) -> size_t; freopennull454 pub fn freopen(arg1: *const c_char, arg2: *const c_char, arg3: *mut FILE) -> *mut FILE; fscanfnull455 pub fn fscanf(arg1: *mut FILE, arg2: *const c_char, ...) -> c_int; fseeknull456 pub fn fseek(arg1: *mut FILE, arg2: c_long, arg3: c_int) -> c_int; ftellnull457 pub fn ftell(arg1: *mut FILE) -> c_long; fwritenull458 pub fn fwrite(arg1: *const c_void, arg2: size_t, arg3: size_t, arg4: *mut FILE) -> size_t; getcnull459 pub fn getc(arg1: *mut FILE) -> c_int; getcharnull460 pub fn getchar() -> c_int; perrornull461 pub fn perror(arg1: *const c_char); printfnull462 pub fn printf(arg1: *const c_char, ...) -> c_int; putcnull463 pub fn putc(arg1: c_int, arg2: *mut FILE) -> c_int; putcharnull464 pub fn putchar(arg1: c_int) -> c_int; putsnull465 pub fn puts(arg1: *const c_char) -> c_int; removenull466 pub fn remove(arg1: *const c_char) -> c_int; rewindnull467 pub fn rewind(arg1: *mut FILE); scanfnull468 pub fn scanf(arg1: *const c_char, ...) -> c_int; setbufnull469 pub fn setbuf(arg1: *mut FILE, arg2: *mut c_char); setvbufnull470 pub fn setvbuf(arg1: *mut FILE, arg2: *mut c_char, arg3: c_int, arg4: size_t) -> c_int; sscanfnull471 pub fn sscanf(arg1: *const c_char, arg2: *const c_char, ...) -> c_int; tmpfilenull472 pub fn tmpfile() -> *mut FILE; ungetcnull473 pub fn ungetc(arg1: c_int, arg2: *mut FILE) -> c_int; vfprintfnull474 pub fn vfprintf(arg1: *mut FILE, arg2: *const c_char, arg3: __va_list) -> c_int; vprintfnull475 pub fn vprintf(arg1: *const c_char, arg2: __va_list) -> c_int; getsnull476 pub fn gets(arg1: *mut c_char) -> *mut c_char; sprintfnull477 pub fn sprintf(arg1: *mut c_char, arg2: *const c_char, ...) -> c_int; tmpnamnull478 pub fn tmpnam(arg1: *const c_char) -> *mut c_char; vsprintfnull479 pub fn vsprintf(arg1: *mut c_char, arg2: *const c_char, arg3: __va_list) -> c_int; renamenull480 pub fn rename(arg1: *const c_char, arg2: *const c_char) -> c_int; asiprintfnull481 pub fn asiprintf(arg1: *mut *mut c_char, arg2: *const c_char, ...) -> c_int; fiprintfnull482 pub fn fiprintf(arg1: *mut FILE, arg2: *const c_char, ...) -> c_int; fiscanfnull483 pub fn fiscanf(arg1: *mut FILE, arg2: *const c_char, ...) -> c_int; iprintfnull484 pub fn iprintf(arg1: *const c_char, ...) -> c_int; iscanfnull485 pub fn iscanf(arg1: *const c_char, ...) -> c_int; siprintfnull486 pub fn siprintf(arg1: *mut c_char, arg2: *const c_char, ...) -> c_int; siscanfnull487 pub fn siscanf(arg1: *mut c_char, arg2: *const c_char, ...) -> c_int; sniprintfnull488 pub fn sniprintf(arg1: *mut c_char, arg2: size_t, arg3: *const c_char, ...) -> c_int; vasiprintfnull489 pub fn vasiprintf(arg1: *mut *mut c_char, arg2: *const c_char, arg3: __va_list) -> c_int; vfiprintfnull490 pub fn vfiprintf(arg1: *mut FILE, arg2: *const c_char, arg3: __va_list) -> c_int; vfiscanfnull491 pub fn vfiscanf(arg1: *mut FILE, arg2: *const c_char, arg3: __va_list) -> c_int; viprintfnull492 pub fn viprintf(arg1: *const c_char, arg2: __va_list) -> c_int; viscanfnull493 pub fn viscanf(arg1: *const c_char, arg2: __va_list) -> c_int; vsiprintfnull494 pub fn vsiprintf(arg1: *mut c_char, arg2: *const c_char, arg3: __va_list) -> c_int; vsiscanfnull495 pub fn vsiscanf(arg1: *const c_char, arg2: *const c_char, arg3: __va_list) -> c_int; vsniprintfnull496 pub fn vsniprintf( 497 arg1: *mut c_char, 498 arg2: size_t, 499 arg3: *const c_char, 500 arg4: __va_list, 501 ) -> c_int; vdiprintfnull502 pub fn vdiprintf(arg1: c_int, arg2: *const c_char, arg3: __va_list) -> c_int; diprintfnull503 pub fn diprintf(arg1: c_int, arg2: *const c_char, ...) -> c_int; fgetposnull504 pub fn fgetpos(arg1: *mut FILE, arg2: *mut fpos_t) -> c_int; fsetposnull505 pub fn fsetpos(arg1: *mut FILE, arg2: *const fpos_t) -> c_int; fdopennull506 pub fn fdopen(arg1: c_int, arg2: *const c_char) -> *mut FILE; filenonull507 pub fn fileno(arg1: *mut FILE) -> c_int; flockfilenull508 pub fn flockfile(arg1: *mut FILE); ftrylockfilenull509 pub fn ftrylockfile(arg1: *mut FILE) -> c_int; funlockfilenull510 pub fn funlockfile(arg1: *mut FILE); getc_unlockednull511 pub fn getc_unlocked(arg1: *mut FILE) -> c_int; getchar_unlockednull512 pub fn getchar_unlocked() -> c_int; putc_unlockednull513 pub fn putc_unlocked(arg1: c_int, arg2: *mut FILE) -> c_int; putchar_unlockednull514 pub fn putchar_unlocked(arg1: c_int) -> c_int; snprintfnull515 pub fn snprintf(arg1: *mut c_char, arg2: size_t, arg3: *const c_char, ...) -> c_int; vsnprintfnull516 pub fn vsnprintf( 517 arg1: *mut c_char, 518 arg2: size_t, 519 arg3: *const c_char, 520 arg4: __va_list, 521 ) -> c_int; getwnull522 pub fn getw(arg1: *mut FILE) -> c_int; putwnull523 pub fn putw(arg1: c_int, arg2: *mut FILE) -> c_int; tempnamnull524 pub fn tempnam(arg1: *const c_char, arg2: *const c_char) -> *mut c_char; fseekonull525 pub fn fseeko(stream: *mut FILE, offset: off_t, whence: c_int) -> c_int; ftellonull526 pub fn ftello(stream: *mut FILE) -> off_t; 527 528 // stdlib.h atofnull529 pub fn atof(arg1: *const c_char) -> f64; strtodnull530 pub fn strtod(arg1: *const c_char, arg2: *mut *mut c_char) -> f64; drand48null531 pub fn drand48() -> f64; erand48null532 pub fn erand48(arg1: *mut c_ushort) -> f64; strtofnull533 pub fn strtof(arg1: *const c_char, arg2: *mut *mut c_char) -> f32; strtoldnull534 pub fn strtold(arg1: *const c_char, arg2: *mut *mut c_char) -> f64; strtod_lnull535 pub fn strtod_l(arg1: *const c_char, arg2: *mut *mut c_char, arg3: locale_t) -> f64; strtof_lnull536 pub fn strtof_l(arg1: *const c_char, arg2: *mut *mut c_char, arg3: locale_t) -> f32; strtold_lnull537 pub fn strtold_l(arg1: *const c_char, arg2: *mut *mut c_char, arg3: locale_t) -> f64; _Exitnull538 pub fn _Exit(arg1: c_int) -> !; abortnull539 pub fn abort() -> !; absnull540 pub fn abs(arg1: c_int) -> c_int; atexitnull541 pub fn atexit(arg1: ::Option<unsafe extern "C" fn()>) -> c_int; atoinull542 pub fn atoi(arg1: *const c_char) -> c_int; atolnull543 pub fn atol(arg1: *const c_char) -> c_long; itoanull544 pub fn itoa(arg1: c_int, arg2: *mut c_char, arg3: c_int) -> *mut c_char; ltoanull545 pub fn ltoa(arg1: c_long, arg2: *mut c_char, arg3: c_int) -> *mut c_char; ultoanull546 pub fn ultoa(arg1: c_ulong, arg2: *mut c_char, arg3: c_int) -> *mut c_char; bsearchnull547 pub fn bsearch( 548 arg1: *const c_void, 549 arg2: *const c_void, 550 arg3: size_t, 551 arg4: size_t, 552 arg5: ::Option<unsafe extern "C" fn(arg1: *const c_void, arg2: *const c_void) -> c_int>, 553 ) -> *mut c_void; callocnull554 pub fn calloc(arg1: size_t, arg2: size_t) -> *mut c_void; divnull555 pub fn div(arg1: c_int, arg2: c_int) -> div_t; exitnull556 pub fn exit(arg1: c_int) -> !; freenull557 pub fn free(arg1: *mut c_void); getenvnull558 pub fn getenv(arg1: *const c_char) -> *mut c_char; labsnull559 pub fn labs(arg1: c_long) -> c_long; ldivnull560 pub fn ldiv(arg1: c_long, arg2: c_long) -> ldiv_t; mallocnull561 pub fn malloc(arg1: size_t) -> *mut c_void; qsortnull562 pub fn qsort( 563 arg1: *mut c_void, 564 arg2: size_t, 565 arg3: size_t, 566 arg4: ::Option<unsafe extern "C" fn(arg1: *const c_void, arg2: *const c_void) -> c_int>, 567 ); randnull568 pub fn rand() -> c_int; reallocnull569 pub fn realloc(arg1: *mut c_void, arg2: size_t) -> *mut c_void; srandnull570 pub fn srand(arg1: c_uint); strtolnull571 pub fn strtol(arg1: *const c_char, arg2: *mut *mut c_char, arg3: c_int) -> c_long; strtoulnull572 pub fn strtoul(arg1: *const c_char, arg2: *mut *mut c_char, arg3: c_int) -> c_ulong; mblennull573 pub fn mblen(arg1: *const c_char, arg2: size_t) -> c_int; mbstowcsnull574 pub fn mbstowcs(arg1: *mut wchar_t, arg2: *const c_char, arg3: size_t) -> size_t; wctombnull575 pub fn wctomb(arg1: *mut c_char, arg2: wchar_t) -> c_int; mbtowcnull576 pub fn mbtowc(arg1: *mut wchar_t, arg2: *const c_char, arg3: size_t) -> c_int; wcstombsnull577 pub fn wcstombs(arg1: *mut c_char, arg2: *const wchar_t, arg3: size_t) -> size_t; rand_rnull578 pub fn rand_r(arg1: *mut c_uint) -> c_int; jrand48null579 pub fn jrand48(arg1: *mut c_ushort) -> c_long; lcong48null580 pub fn lcong48(arg1: *mut c_ushort); lrand48null581 pub fn lrand48() -> c_long; mrand48null582 pub fn mrand48() -> c_long; nrand48null583 pub fn nrand48(arg1: *mut c_ushort) -> c_long; seed48null584 pub fn seed48(arg1: *mut c_ushort) -> *mut c_ushort; srand48null585 pub fn srand48(arg1: c_long); putenvnull586 pub fn putenv(arg1: *mut c_char) -> c_int; a64lnull587 pub fn a64l(arg1: *const c_char) -> c_long; l64anull588 pub fn l64a(arg1: c_long) -> *mut c_char; randomnull589 pub fn random() -> c_long; setstatenull590 pub fn setstate(arg1: *mut c_char) -> *mut c_char; initstatenull591 pub fn initstate(arg1: c_uint, arg2: *mut c_char, arg3: size_t) -> *mut c_char; srandomnull592 pub fn srandom(arg1: c_uint); mkostempnull593 pub fn mkostemp(arg1: *mut c_char, arg2: c_int) -> c_int; mkostempsnull594 pub fn mkostemps(arg1: *mut c_char, arg2: c_int, arg3: c_int) -> c_int; mkdtempnull595 pub fn mkdtemp(arg1: *mut c_char) -> *mut c_char; mkstempnull596 pub fn mkstemp(arg1: *mut c_char) -> c_int; mktempnull597 pub fn mktemp(arg1: *mut c_char) -> *mut c_char; atollnull598 pub fn atoll(arg1: *const c_char) -> c_longlong; llabsnull599 pub fn llabs(arg1: c_longlong) -> c_longlong; lldivnull600 pub fn lldiv(arg1: c_longlong, arg2: c_longlong) -> lldiv_t; strtollnull601 pub fn strtoll(arg1: *const c_char, arg2: *mut *mut c_char, arg3: c_int) -> c_longlong; strtoullnull602 pub fn strtoull(arg1: *const c_char, arg2: *mut *mut c_char, arg3: c_int) -> c_ulonglong; aligned_allocnull603 pub fn aligned_alloc(arg1: size_t, arg2: size_t) -> *mut c_void; at_quick_exitnull604 pub fn at_quick_exit(arg1: ::Option<unsafe extern "C" fn()>) -> c_int; quick_exitnull605 pub fn quick_exit(arg1: c_int); setenvnull606 pub fn setenv(arg1: *const c_char, arg2: *const c_char, arg3: c_int) -> c_int; unsetenvnull607 pub fn unsetenv(arg1: *const c_char) -> c_int; humanize_numbernull608 pub fn humanize_number( 609 arg1: *mut c_char, 610 arg2: size_t, 611 arg3: i64, 612 arg4: *const c_char, 613 arg5: c_int, 614 arg6: c_int, 615 ) -> c_int; dehumanize_numbernull616 pub fn dehumanize_number(arg1: *const c_char, arg2: *mut i64) -> c_int; getenv_rnull617 pub fn getenv_r(arg1: *const c_char, arg2: *mut c_char, arg3: size_t) -> c_int; heapsortnull618 pub fn heapsort( 619 arg1: *mut c_void, 620 arg2: size_t, 621 arg3: size_t, 622 arg4: ::Option<unsafe extern "C" fn(arg1: *const c_void, arg2: *const c_void) -> c_int>, 623 ) -> c_int; mergesortnull624 pub fn mergesort( 625 arg1: *mut c_void, 626 arg2: size_t, 627 arg3: size_t, 628 arg4: ::Option<unsafe extern "C" fn(arg1: *const c_void, arg2: *const c_void) -> c_int>, 629 ) -> c_int; radixsortnull630 pub fn radixsort( 631 arg1: *mut *const c_uchar, 632 arg2: c_int, 633 arg3: *const c_uchar, 634 arg4: c_uint, 635 ) -> c_int; sradixsortnull636 pub fn sradixsort( 637 arg1: *mut *const c_uchar, 638 arg2: c_int, 639 arg3: *const c_uchar, 640 arg4: c_uint, 641 ) -> c_int; getprognamenull642 pub fn getprogname() -> *const c_char; setprognamenull643 pub fn setprogname(arg1: *const c_char); qabsnull644 pub fn qabs(arg1: quad_t) -> quad_t; strtoqnull645 pub fn strtoq(arg1: *const c_char, arg2: *mut *mut c_char, arg3: c_int) -> quad_t; strtouqnull646 pub fn strtouq(arg1: *const c_char, arg2: *mut *mut c_char, arg3: c_int) -> u_quad_t; strsuftollnull647 pub fn strsuftoll( 648 arg1: *const c_char, 649 arg2: *const c_char, 650 arg3: c_longlong, 651 arg4: c_longlong, 652 ) -> c_longlong; strsuftollxnull653 pub fn strsuftollx( 654 arg1: *const c_char, 655 arg2: *const c_char, 656 arg3: c_longlong, 657 arg4: c_longlong, 658 arg5: *mut c_char, 659 arg6: size_t, 660 ) -> c_longlong; l64a_rnull661 pub fn l64a_r(arg1: c_long, arg2: *mut c_char, arg3: c_int) -> c_int; qdivnull662 pub fn qdiv(arg1: quad_t, arg2: quad_t) -> qdiv_t; strtol_lnull663 pub fn strtol_l( 664 arg1: *const c_char, 665 arg2: *mut *mut c_char, 666 arg3: c_int, 667 arg4: locale_t, 668 ) -> c_long; strtoul_lnull669 pub fn strtoul_l( 670 arg1: *const c_char, 671 arg2: *mut *mut c_char, 672 arg3: c_int, 673 arg4: locale_t, 674 ) -> c_ulong; strtoll_lnull675 pub fn strtoll_l( 676 arg1: *const c_char, 677 arg2: *mut *mut c_char, 678 arg3: c_int, 679 arg4: locale_t, 680 ) -> c_longlong; strtoull_lnull681 pub fn strtoull_l( 682 arg1: *const c_char, 683 arg2: *mut *mut c_char, 684 arg3: c_int, 685 arg4: locale_t, 686 ) -> c_ulonglong; strtoq_lnull687 pub fn strtoq_l( 688 arg1: *const c_char, 689 arg2: *mut *mut c_char, 690 arg3: c_int, 691 arg4: locale_t, 692 ) -> quad_t; strtouq_lnull693 pub fn strtouq_l( 694 arg1: *const c_char, 695 arg2: *mut *mut c_char, 696 arg3: c_int, 697 arg4: locale_t, 698 ) -> u_quad_t; _mb_cur_max_lnull699 pub fn _mb_cur_max_l(arg1: locale_t) -> size_t; mblen_lnull700 pub fn mblen_l(arg1: *const c_char, arg2: size_t, arg3: locale_t) -> c_int; mbstowcs_lnull701 pub fn mbstowcs_l( 702 arg1: *mut wchar_t, 703 arg2: *const c_char, 704 arg3: size_t, 705 arg4: locale_t, 706 ) -> size_t; wctomb_lnull707 pub fn wctomb_l(arg1: *mut c_char, arg2: wchar_t, arg3: locale_t) -> c_int; mbtowc_lnull708 pub fn mbtowc_l(arg1: *mut wchar_t, arg2: *const c_char, arg3: size_t, arg4: locale_t) 709 -> c_int; wcstombs_lnull710 pub fn wcstombs_l( 711 arg1: *mut c_char, 712 arg2: *const wchar_t, 713 arg3: size_t, 714 arg4: locale_t, 715 ) -> size_t; 716 717 // string.h memchrnull718 pub fn memchr(arg1: *const c_void, arg2: c_int, arg3: size_t) -> *mut c_void; memcmpnull719 pub fn memcmp(arg1: *const c_void, arg2: *const c_void, arg3: size_t) -> c_int; memcpynull720 pub fn memcpy(arg1: *mut c_void, arg2: *const c_void, arg3: size_t) -> *mut c_void; memmovenull721 pub fn memmove(arg1: *mut c_void, arg2: *const c_void, arg3: size_t) -> *mut c_void; memsetnull722 pub fn memset(arg1: *mut c_void, arg2: c_int, arg3: size_t) -> *mut c_void; strcatnull723 pub fn strcat(arg1: *mut c_char, arg2: *const c_char) -> *mut c_char; strchrnull724 pub fn strchr(arg1: *const c_char, arg2: c_int) -> *mut c_char; strcmpnull725 pub fn strcmp(arg1: *const c_char, arg2: *const c_char) -> c_int; strcollnull726 pub fn strcoll(arg1: *const c_char, arg2: *const c_char) -> c_int; strcpynull727 pub fn strcpy(arg1: *mut c_char, arg2: *const c_char) -> *mut c_char; strcspnnull728 pub fn strcspn(arg1: *const c_char, arg2: *const c_char) -> size_t; strerrornull729 pub fn strerror(arg1: c_int) -> *mut c_char; strlennull730 pub fn strlen(arg1: *const c_char) -> size_t; strncatnull731 pub fn strncat(arg1: *mut c_char, arg2: *const c_char, arg3: size_t) -> *mut c_char; strncmpnull732 pub fn strncmp(arg1: *const c_char, arg2: *const c_char, arg3: size_t) -> c_int; strncpynull733 pub fn strncpy(arg1: *mut c_char, arg2: *const c_char, arg3: size_t) -> *mut c_char; strpbrknull734 pub fn strpbrk(arg1: *const c_char, arg2: *const c_char) -> *mut c_char; strrchrnull735 pub fn strrchr(arg1: *const c_char, arg2: c_int) -> *mut c_char; strspnnull736 pub fn strspn(arg1: *const c_char, arg2: *const c_char) -> size_t; strstrnull737 pub fn strstr(arg1: *const c_char, arg2: *const c_char) -> *mut c_char; strtoknull738 pub fn strtok(arg1: *mut c_char, arg2: *const c_char) -> *mut c_char; strtok_rnull739 pub fn strtok_r(arg1: *mut c_char, arg2: *const c_char, arg3: *mut *mut c_char) -> *mut c_char; strerror_rnull740 pub fn strerror_r(arg1: c_int, arg2: *mut c_char, arg3: size_t) -> c_int; strxfrmnull741 pub fn strxfrm(arg1: *mut c_char, arg2: *const c_char, arg3: size_t) -> size_t; memccpynull742 pub fn memccpy( 743 arg1: *mut c_void, 744 arg2: *const c_void, 745 arg3: c_int, 746 arg4: size_t, 747 ) -> *mut c_void; strdupnull748 pub fn strdup(arg1: *const c_char) -> *mut c_char; stpcpynull749 pub fn stpcpy(arg1: *mut c_char, arg2: *const c_char) -> *mut c_char; stpncpynull750 pub fn stpncpy(arg1: *mut c_char, arg2: *const c_char, arg3: size_t) -> *mut c_char; strnlennull751 pub fn strnlen(arg1: *const c_char, arg2: size_t) -> size_t; memmemnull752 pub fn memmem( 753 arg1: *const c_void, 754 arg2: size_t, 755 arg3: *const c_void, 756 arg4: size_t, 757 ) -> *mut c_void; strcasestrnull758 pub fn strcasestr(arg1: *const c_char, arg2: *const c_char) -> *mut c_char; strlcatnull759 pub fn strlcat(arg1: *mut c_char, arg2: *const c_char, arg3: size_t) -> size_t; strlcpynull760 pub fn strlcpy(arg1: *mut c_char, arg2: *const c_char, arg3: size_t) -> size_t; strsepnull761 pub fn strsep(arg1: *mut *mut c_char, arg2: *const c_char) -> *mut c_char; stresepnull762 pub fn stresep(arg1: *mut *mut c_char, arg2: *const c_char, arg3: c_int) -> *mut c_char; strndupnull763 pub fn strndup(arg1: *const c_char, arg2: size_t) -> *mut c_char; memrchrnull764 pub fn memrchr(arg1: *const c_void, arg2: c_int, arg3: size_t) -> *mut c_void; explicit_memsetnull765 pub fn explicit_memset(arg1: *mut c_void, arg2: c_int, arg3: size_t) -> *mut c_void; consttime_memequalnull766 pub fn consttime_memequal(arg1: *const c_void, arg2: *const c_void, arg3: size_t) -> c_int; strcoll_lnull767 pub fn strcoll_l(arg1: *const c_char, arg2: *const c_char, arg3: locale_t) -> c_int; strxfrm_lnull768 pub fn strxfrm_l( 769 arg1: *mut c_char, 770 arg2: *const c_char, 771 arg3: size_t, 772 arg4: locale_t, 773 ) -> size_t; strerror_lnull774 pub fn strerror_l(arg1: c_int, arg2: locale_t) -> *mut c_char; 775 776 // strings.h bcmpnull777 pub fn bcmp(arg1: *const c_void, arg2: *const c_void, arg3: size_t) -> c_int; bcopynull778 pub fn bcopy(arg1: *const c_void, arg2: *mut c_void, arg3: size_t); bzeronull779 pub fn bzero(arg1: *mut c_void, arg2: size_t); ffsnull780 pub fn ffs(arg1: c_int) -> c_int; popcountnull781 pub fn popcount(arg1: c_uint) -> c_uint; popcountlnull782 pub fn popcountl(arg1: c_ulong) -> c_uint; popcountllnull783 pub fn popcountll(arg1: c_ulonglong) -> c_uint; popcount32null784 pub fn popcount32(arg1: u32) -> c_uint; popcount64null785 pub fn popcount64(arg1: u64) -> c_uint; rindexnull786 pub fn rindex(arg1: *const c_char, arg2: c_int) -> *mut c_char; strcasecmpnull787 pub fn strcasecmp(arg1: *const c_char, arg2: *const c_char) -> c_int; strncasecmpnull788 pub fn strncasecmp(arg1: *const c_char, arg2: *const c_char, arg3: size_t) -> c_int; 789 790 // signal.h signalnull791 pub fn signal(arg1: c_int, arg2: sighandler_t) -> sighandler_t; raisenull792 pub fn raise(arg1: c_int) -> c_int; 793 794 // time.h asctimenull795 pub fn asctime(arg1: *const tm) -> *mut c_char; clocknull796 pub fn clock() -> clock_t; ctimenull797 pub fn ctime(arg1: *const time_t) -> *mut c_char; difftimenull798 pub fn difftime(arg1: time_t, arg2: time_t) -> f64; gmtimenull799 pub fn gmtime(arg1: *const time_t) -> *mut tm; localtimenull800 pub fn localtime(arg1: *const time_t) -> *mut tm; timenull801 pub fn time(arg1: *mut time_t) -> time_t; mktimenull802 pub fn mktime(arg1: *mut tm) -> time_t; strftimenull803 pub fn strftime( 804 arg1: *mut c_char, 805 arg2: size_t, 806 arg3: *const c_char, 807 arg4: *const tm, 808 ) -> size_t; utimenull809 pub fn utime(arg1: *const c_char, arg2: *mut time_t) -> c_int; asctime_rnull810 pub fn asctime_r(arg1: *const tm, arg2: *mut c_char) -> *mut c_char; ctime_rnull811 pub fn ctime_r(arg1: *const time_t, arg2: *mut c_char) -> *mut c_char; gmtime_rnull812 pub fn gmtime_r(arg1: *const time_t, arg2: *mut tm) -> *mut tm; localtime_rnull813