C 标准库函数
- 来源: https://www.freebasic.net/wiki/wikka.php?wakka=ProPgCruntime
- 最后更新: 2018-04-09
这是标准 C 库中函数原型的字母顺序列表以及按功能分组的原型列表。
描述
注释列包含函数用途的简要描述。该列表并不完整,但提供了 C 运行时库中主要函数的信息。它至少应指明标准 C 库中有哪些函数可用,便于您自行进行更多研究。某些在其他地方有文档记录的 C 库函数可能在 FreeBASIC 中不可用。请查看相应的包含文件了解更多信息。
注意:以下原型不是官方的 FreeBASIC 原型(请参见包含文件),但它们将为您提供足够的信息以正确使用这些函数。
"包含文件"列包含您必须使用程序开头的 #include 指令包含的文件名。如果不包含适当的包含文件,程序要么无法编译,要么看似正确编译但运行时给出错误结果。所有 C 运行时头文件都位于 crt 目录中;例如,如果指定的头文件是 math.bi,则使用 #include "crt/math.bi" 或 #include "crt\math.bi",或者只用 #include "crt.bi" 包含所有其他文件。
原型列包含以下信息:
- 函数名称;
- 括号中函数所需的参数及其数据类型;
- 函数返回值的数据类型。
例如,atoi(a as zstring ptr) as integer 表示函数 atoi 返回整数类型的值,并需要一个字符 zstring ptr 作为参数。
注意:为了非常方便地调用 C 运行时函数,任何字符串类型参数都可以直接传递给声明为 'zstring ptr' 参数的过程。编译器自身会在任何字符串类型参数和 'zstring ptr' 类型参数之间执行自动转换(无警告消息)。
字母顺序列表
| 名称 | 原型(含参数) | 包含文件 | 说明 |
|---|---|---|---|
| abs_ | abs_(n as integer) as integer | stdlib.bi | 返回绝对值(即正值) |
| acos_ | acos_(a as double) as double | math.bi | 返回反余弦(角度,以弧度为单位) |
| asin_ | asin_(a as double) as double | math.bi | 返回反正弦(角度,以弧度为单位) |
| atan_ | atan_(a as double) as double | math.bi | 返回反正切(角度,以弧度为单位) |
| atan2_ | atan2_(y as double, x as double) as double | math.bi | 返回反正切(传入对边作为 y,邻边作为 x) |
| atoi | atoi(s as zstring ptr) as integer | stdlib.bi | 将数字字符 zstring 转换为整数类型数字。 |
| atof | atof(s as zstring ptr) as double | stdlib.bi | 将数字字符 zstring 转换为 double 类型数字。 |
| calloc | calloc(NumElts as integer, EltSiz as integer) as any ptr | stdlib.bi | 分配内存。返回指向具有 NumElts 个元素(每个元素大小为 EltSiz 字节)的数组缓冲区的指针。 |
| ceil | ceil(d as double) as double | math.bi | 返回不低于传入值的最接近整数。 |
| clearerr | clearerr(s as FILE ptr) | stdio.bi | 清除文件流(读或写)上的错误指示器。 |
| cos_ | cos_(ar as double) as double | math.bi | 返回以弧度为单位的角的余弦。 |
| cosh | cosh(x as double) as double | math.bi | 返回以弧度为单位的角的双曲余弦。 |
| div | div(num as integer, denom as integer) as div_t | stdlib.bi | 以 div_t 类型结构的形式返回除法的商和余数。 |
| ecvt | ecvt(x as double) as zstring ptr | math.bi | 将数字转换为 zstring。 |
| exit_ | exit_(status as integer) | stdlib.bi | 退出程序。它将刷新文件缓冲区并关闭所有打开的文件,并运行由 atexit() 调用的任何函数。 |
| exp_ | exp_(a as double) as double | math.bi | 返回 e 的参数次幂的值(自然对数的反函数)。 |
| fabs | fabs(d as double) as double | math.bi | 返回 double 类型的绝对值(即正值)。 |
| fclose | fclose(s as FILE ptr) as FILE ptr | stdio.bi | 关闭文件。成功返回 0,否则返回 EOF。 |
| feof | feof(s as FILE ptr) as integer | stdio.bi | 返回文件结束指示器的值(非文件结束则为 0)。指示器会自动清除,但可以通过 clearerr() 重置。 |
| ferror | ferror(s as FILE ptr) as integer | stdio.bi | 返回流的错误指示器(无错误则为 0)。错误指示器可通过 clearerr() 或 rewind() 重置。 |
| fflush | fflush(s as FILE ptr) as integer | stdio.bi | 刷新(即删除)流(使用 stdin 刷新来自键盘的流)。成功返回 0。 |
| fgetc | fgetc(s as FILE ptr) as integer | stdio.bi | 从传入的流中进行单字符输入(ASCII 码)(stdin 为键盘)。 |
| fgetpos | fgetpos(s as FILE ptr, c as fpos_t ptr) as integer | stdio.bi | 将流 s 上的文件指针位置保存到 c 所指向的位置。 |
| fgets | fgets(b as zstring ptr, n as integer, s as FILE ptr) as zstring ptr | stdio.bi | 从流 s 中读取最多 n-1 个字符到缓冲区 b。 |
| floor | floor(d as double) as double | math.bi | 返回不高于传入值的最接近整数。 |
| fmod | fmod(x as double, y as double) as double | math.bi | 计算 x 除以 y 的余数。 |
| fopen | fopen(file as zstring ptr, mode as zstring ptr) as FILE ptr | stdio.bi | 打开文件。传入文件的 DOS 名称和表示读取、写入或追加的代码。代码:r 读取,w 写入,+ 读写,a 追加,b 二进制。 |
| fprintf | fprintf(s as FILE ptr, fmt as zstring ptr, ...) as integer | stdio.bi | 将与 fmt 中单个 % 符号数量匹配的项打印到流 s 中。 |
| fputc | fputc(c as integer, s as FILE ptr) as integer | stdio.bi | 将单个字符 c 输出到流 s。 |
| fputs | fputs(b as zstring ptr, s as FILE ptr) as integer | stdio.bi | 将 b 中的字符流发送到流 s,操作失败返回 0。 |
| fread | fread(buf as any ptr, b as size_t, c as size_t, s as FILE ptr) as integer | stdio.bi | 从文件 s 中读取 c 个大小为 b 字节的数据项到缓冲区 buf。返回实际读取的数据项数量。 |
| free | free(p as any ptr) | stdlib.bi | 释放指针 p 的内存分配以使该内存可用。 |
| freopen | freopen(file as zstring ptr, mode as zstring ptr, s as FILE ptr) as FILE ptr | stdio.bi | 打开文件以重定向流。例如,freopen("myfile", "w", stdout) 将把标准输出重定向到打开的 "myfile"。 |
| frexp | frexp(x as double, p as integer ptr) as double | math.bi | 计算值 m,使得 x 等于 m 乘以 2 的某个幂。p 是指向 m 的指针。 |
| fscanf | fscanf(s as FILE ptr, fmt as zstring ptr, ...) as integer | stdio.bi | 从流 s 中读取与 fmt 中 % 符号数量对应的项(配合列出的指针)。 |
| fseek | fseek(s as FILE ptr, offset as integer, origin as integer) as integer | stdio.bi | 定位文件指针。origin 为 0、1 或 2,分别表示流的开始、偏移字节处和末尾。 |
| fsetpos | fsetpos(s as FILE ptr, p as fpos_t ptr) as integer | stdio.bi | 将流 s 的文件指针设置到 p 所指向的值。 |
| ftell | ftell(s as FILE ptr) as long | stdio.bi | 定位流 s 的文件指针位置。 |
| fwrite | fwrite(buf as any ptr, b as integer, c as integer, s as FILE ptr) as integer | stdio.bi | 将缓冲区 buf 中 c 个大小为 b 字节的数据项写入文件 s。返回实际写入的数据项数量。 |
| getc | getc(s as FILE ptr) as integer | stdio.bi | 从传入流中进行单字符输入(ASCII 码)的宏。(stdin 为键盘) |
| getchar | getchar() as integer | stdio.bi | 从标准输入读取单个字符 |
| gets | gets(b as zstring ptr) as zstring ptr | stdio.bi | 从标准输入读取字符流,直到遇到 \n 或 EOF。 |
| hypot | hypot(x as double, y as double) as double | math.bi | 从边 x 和 y 计算斜边。 |
| isalnum | isalnum(c as integer) as integer | ctype.bi | 如果字符 c 是字母或数字,则返回非零值。 |
| isalpha | isalpha(c as integer) as integer | ctype.bi | 如果字符 c 是字母,则返回非零值。 |
| iscntrl | iscntrl(c as integer) as integer | ctype.bi | 如果字符 c 是控制字符,则返回非零值。 |
| isdigit | isdigit(c as integer) as integer | ctype.bi | 如果字符 c 是数字,则返回非零值。 |
| isgraph | isgraph(c as integer) as integer | ctype.bi | 如果字符 c 是字母,则返回非零值。 |
| islower | islower(c as integer) as integer | ctype.bi | 如果字符 c 是小写字符,则返回非零值。 |
| isprint | isprint(c as integer) as integer | ctype.bi | 如果字符 c 是可打印字符,则返回非零值。 |
| ispunct | ispunct(c as integer) as integer | ctype.bi | 如果字符 c 是标点符号字符,则返回非零值。 |
| isspace | isspace(c as integer) as integer | ctype.bi | 如果字符 c 表示空格,则返回非零值。 |
| isupper | isupper(c as integer) as integer | ctype.bi | 如果字符 c 是大写字符,则返回非零值。 |
| isxdigit | isxdigit(c as integer) as integer | ctype.bi | 如果字符 c 是十六进制数字(0 到 F 或 f),则返回非零值。 |
| ldexp | ldexp(x as double, n as integer) as double | math.bi | 返回 x 与 2 的 n 次幂的乘积。 |
| ldiv | ldiv(num as long, denom as long) as ldiv_t | stdlib.bi | 以 ldiv_t 类型结构的形式返回除法的商和余数。 |
| log_ | log_(a as double) as double | math.bi | 返回参数的自然对数。 |
| log10 | log10(a as double) as double | math.bi | 返回参数以 10 为底的对数。 |
| malloc | malloc(bytes as integer) as any ptr | stdlib.bi | 分配内存。返回指向指定大小存储空间缓冲区的指针。 |
| modf | modf(d as double, p as double ptr) as double | math.bi | 返回浮点数 d 的小数部分。p 指向以浮点数表示的整数部分。 |
| perror | perror(mess as zstring ptr) | stdio.bi | 将作为参数传递的消息打印到流 stderr。 |
| pow | pow(x as double, y as double) as double | math.bi | 返回 x 的 y 次幂。 |
| pow10 | pow10(x as double) as double | math.bi | 返回 10 的 x 次幂(log10() 的反函数)。 |
| printf | printf(fmt as zstring ptr, ...) as integer | stdio.bi | 将与 fmt 中单个 % 符号数量匹配的项打印到标准输出。 |
| putc | putc(c as integer, s as FILE ptr) as integer | stdio.bi | 将单个字符 c 输出到流 s 的宏。 |
| putchar | putchar(c as integer) as integer | stdio.bi | 将单个字符 c 输出到标准输出的宏。 |
| puts | puts(b as zstring ptr) as integer | stdio.bi | 将 b 中的字符流发送到标准输出,操作失败返回 0。 |
| rand | rand() as integer | stdlib.bi | 返回伪随机数。需要种子。种子通过 srand 设置。 |
| realloc | realloc(p as any ptr, newsize as size_t) as any ptr | stdlib.bi | 分配内存。返回指向 p 所指对象大小改变后的缓冲区的指针。 |
| rewind | rewind(s as FILE ptr) | stdio.bi | 清除文件流(读或写)上的错误指示器。在读取修改后的文件之前必须使用。 |
| scanf | scanf(fmt as zstring ptr, ...) as integer | stdio.bi | 从标准输入读取与 fmt 中 % 符号数量对应的项(配合列出的指针)。 |
| sin_ | sin_(ar as double) as double | math.bi | 返回以弧度为单位的角的正弦。 |
| sinh | sinh(x as double) as double | math.bi | 返回以弧度为单位的角的双曲正弦。 |
| sprintf | sprintf(p as zstring ptr, fmt as zstring ptr, ...) as integer | stdio.bi | 将与 fmt 中单个 % 符号数量匹配的项打印到 zstring p。 |
| sqrt | sqrt(a as double) as double | math.bi | 返回传入值的平方根。如果值为负数,则产生域错误。 |
| srand | srand(seed as uinteger) | stdlib.bi | 设置随机数的种子。一个可能的种子是当前时间。 |
| sscanf | sscanf(b as zstring ptr, fmt as zstring ptr, ...) as integer | stdio.bi | 从缓冲区 b 中读取与 fmt 中 % 符号数量对应的项(配合列出的指针)。 |
| strcat | strcat(s1 as zstring ptr, s2 as zstring ptr) as zstring ptr | string.bi | 将 zstring s2 连接(追加)到 s1。 |
| strchr | strchr(s as zstring ptr, c as integer) as zstring ptr | string.bi | 返回指向 s 中 c 第一次出现的指针,如果未找到则返回 NULL。 |
| strcmp | strcmp(s1 as zstring ptr, s2 as zstring ptr) as integer | string.bi | 比较 zstring s2 和 s1。返回 0 或第一个不匹配字符的 ASCII 值的有符号差。 |
| strcpy | strcpy(s1 as zstring ptr, s2 as zstring ptr) as zstring ptr | string.bi | 将 s2 复制到 s1。 |
| strcspn | strcspn(s1 as zstring ptr, s2 as zstring ptr) as integer | string.bi | 返回 s1 中在遇到 s2 中任何字符之前的字符数。 |
| strerror | strerror(n as integer) as zstring ptr | string.bi | 返回指向与传入错误号对应的系统错误消息的指针。 |
| strlen | strlen(s as zstring ptr) as integer | string.bi | 返回 s 所指向的以 null 结尾的 zstring 中的字节数(不计 null)。 |
| strncat | strncat(s1 as zstring ptr, s2 as zstring ptr, n as integer) as zstring ptr | string.bi | 将 zstring s2 的 n 个字节连接(追加)到 s1。 |
| strncmp | strncmp(s1 as zstring ptr, s2 as any ptr, n as integer) as integer | string.bi | 比较 zstring s2 的 n 个字节与 s1 的对应字节。返回 0 或第一个不匹配字符的 ASCII 值的有符号差。 |
| strncpy | strncpy(s1 as zstring ptr, s2 as zstring ptr, n as integer) as zstring ptr | string.bi | 将 s2 的 n 个字节复制到 s1。 |
| strpbrk | strpbrk(s1 as zstring ptr, s2 as zstring ptr) as zstring ptr | string.bi | 返回指向 s1 中第一个也在 s2 中的字符的指针。 |
| strrchr | strrchr(s as zstring ptr, c as integer) as zstring ptr | string.bi | 返回指向 s 中 c 最后一次出现的指针,如果未找到则返回 NULL。 |
| strspn | strspn(s1 as zstring ptr, s2 as zstring ptr) as integer | string.bi | 返回 s1 中在遇到不在 s2 中的字符之前的字符数。 |
| strstr | strstr(s1 as zstring ptr, s2 as zstring ptr) as zstring ptr | string.bi | 在 s1 中找到 zstring s2 的位置并返回指向其首字符的指针。 |
| strtod | strtod(s as zstring ptr, p as zstring ptr) as double | stdlib.bi | 将 zstring 转换为 double,前提是 zstring 以数字形式书写。 |
| strtok | strtok(s1 as zstring ptr, s2 as zstring ptr) as zstring ptr | string.bi | 利用 zstring s1 返回连续标记的指针。s2 中列出的字符被视为分隔符。 |
| system | system(command as zstring ptr) as integer | stdlib.bi | 从程序内部执行以 zstring 形式书写的操作系统命令(例如 Windows 和 DOS 上的 DIR 以及 Linux 上的 LS)。 |
| tan_ | tan_(ar as double) as double | math.bi | 返回以弧度为单位的角的正切。 |
| tanh | tanh(x as double) as double | math.bi | 返回以弧度为单位的角的双曲正切。 |
| tolower | tolower(c as integer) as integer | ctype.bi | 将字符从大写转换为小写(使用 ASCII 码)。 |
| toupper | toupper(c as integer) as integer | ctype.bi | 将字符从小写转换为大写(使用 ASCII 码)。 |
| ungetc | ungetc(c as integer, s as FILE ptr) as integer | stdio.bi | 将字符 c 推回流 s,如果不成功则返回 EOF。不要推回超过一个字符。 |
缓冲区操作
#include "crt/string.bi"
| 原型(含参数) | 说明 |
|---|---|
| memchr(s as any ptr, c as integer, n as size_t) as any ptr | 在缓冲区中搜索字符。 |
| memcmp(s1 as any ptr, s2 as any ptr, n as size_t) as integer | 比较两个缓冲区。 |
| memcpy(dest as any ptr, src as any ptr, n as size_t) as any ptr | 将一个缓冲区复制到另一个缓冲区。 |
| memmove(dest as any ptr, src as any ptr, n as size_t) as any ptr | 将若干字节从一个缓冲区移动到另一个缓冲区。 |
| memset(s as any ptr, c as integer, n as size_t) as any ptr | 将缓冲区的所有字节设置为指定字符。 |
字符分类和转换
#include "crt/ctype.bi"
| 原型(含参数) | 说明 |
|---|---|
| isalnum(c as integer) as integer | 如果 c 是字母数字则为真。 |
| isalpha(c as integer) as integer | 如果 c 是字母则为真。 |
| isascii(c as integer) as integer | 如果 c 是 ASCII 则为真。 |
| iscntrl(c as integer) as integer | 如果 c 是控制字符则为真。 |
| isdigit(c as integer) as integer | 如果 c 是十进制数字则为真。 |
| isgraph(c as integer) as integer | 如果 c 是图形字符则为真。 |
| islower(c as integer) as integer | 如果 c 是小写字母则为真。 |
| isprint(c as integer) as integer | 如果 c 是可打印字符则为真。 |
| ispunct(c as integer) as integer | 如果 c 是标点符号字符则为真。 |
| isspace(c as integer) as integer | 如果 c 是空格字符则为真。 |
| isupper(c as integer) as integer | 如果 c 是大写字母则为真。 |
| isxdigit(c as integer) as integer | 如果 c 是十六进制数字则为真。 |
| toascii(c as integer) as integer | 将 c 转换为 ASCII。 |
| tolower(c as integer) as integer | 将 c 转换为小写。 |
| toupper(c as integer) as integer | 将 c 转换为大写。 |
数据转换
#include "crt/stdlib.bi"
| 原型(含参数) | 说明 |
|---|---|
| atof(string1 as zstring ptr) as double | 将 zstring 转换为浮点值。 |
| atoi(string1 as zstring ptr) as integer | 将 zstring 转换为整数值。 |
| atol(string1 as zstring ptr) as integer | 将 zstring 转换为长整数值。 |
| itoa(value as integer, zstring as zstring ptr, radix as integer) as zstring ptr | 使用给定进制将整数值转换为 zstring。 |
| ltoa(value as long, zstring as zstring ptr, radix as integer) as zstring ptr | 使用给定进制将长整数转换为 zstring。 |
| strtod(string1 as zstring ptr, endptr as zstring ptr) as double | 将 zstring 转换为浮点值。 |
| strtol(string1 as zstring ptr, endptr as zstring ptr, radix as integer) as long | 使用给定进制将 zstring 转换为长整数。 |
| strtoul(string1 as zstring ptr, endptr as zstring ptr, radix as integer) as ulong | 将 zstring 转换为无符号长整数。 |
目录操作
#include "crt/io.bi"
| 原型(含参数) | 说明 |
|---|---|
| _chdir(path as zstring ptr) as integer | 将当前目录更改为给定路径。 |
| _getcwd(path as zstring ptr, numchars as integer) as zstring ptr | 返回当前工作目录的名称。 |
| _mkdir(path as zstring ptr) as integer | 使用给定路径名创建目录。 |
| _rmdir(path as zstring ptr) as integer | 删除指定目录。 |
文件操作
#include "crt/sys/stat.bi"
#include "crt/io.bi"
| 原型(含参数) | 说明 |
|---|---|
| chmod(path as zstring ptr, pmode as integer) as integer | 更改文件的权限设置。 |
| fstat(handle as integer, buffer as type stat ptr) as integer | 获取文件状态信息。 |
| remove(path as zstring ptr) as integer | 删除命名文件。 |
| rename_(oldname as zstring ptr, newname as zstring ptr) as integer | 重命名文件。 |
| stat(path as zstring ptr, buffer as type stat ptr) as integer | 获取命名文件的文件状态信息。 |
| umask(pmode as uinteger) as uinteger | 设置文件权限掩码。 |
流 I/O
#include "crt/stdio.bi"
| 原型(含参数) | 说明 |
|---|---|
| clearerr(file_pointer as FILE ptr) | 清除流的错误指示器。 |
| fclose(file_pointer as FILE ptr) as integer | 关闭文件。 |
| feof(file_pointer as FILE ptr) as integer | 检查流上是否发生文件结束。 |
| ferror(file_pointer as FILE ptr) as integer | 检查文件 I/O 期间是否发生任何错误。 |
| fflush(file_pointer as FILE ptr) as integer | 将缓冲区写入(刷新)到文件。 |
| fgetc(file_pointer as FILE ptr) as integer | 从流中获取字符。 |
| fgetpos(file_pointer as FILE ptr, fpos_t current_pos) as integer | 获取流中的当前位置。 |
| fgets(string1 as zstring ptr, maxchar as integer, file_pointer as FILE ptr) as zstring ptr | 从文件读取 zstring。 |
| fopen(filename as zstring ptr, access_mode as zstring ptr) as FILE ptr | 打开文件进行缓冲 I/O。 |
| fprintf(file_pointer as FILE ptr, format_string as zstring ptr, args) as integer | 将格式化输出写入文件。 |
| fputc(c as integer, file_pointer as FILE ptr) as integer | 将字符写入流。 |
| fputchar(c as integer) as integer | 将字符写入 stdout。 |
| fputs(string1 as zstring ptr, file_pointer as FILE ptr) as integer | 将 zstring 写入流。 |
| fread(buffer as zstring ptr, size as size_t count as size_t, file_pointer as FILE ptr) as size_t | 从流中将未格式化数据读入缓冲区。 |
| freopen(filename as zstring ptr, access as zstring ptr mode, file_pointer as FILE ptr) as FILE ptr | 将文件指针重新分配到不同的文件。 |
| fscanf(file_pointer as FILE ptr, format as zstring ptr zstring, args) as integer | 从流中读取格式化输入。 |
| fseek(file_pointer as FILE ptr, offset as long, origin as integer) as integer | 将文件中的当前位置设置为新位置。 |
| fsetpos(file_pointer as FILE ptr, current_pos as fpos_t) as integer | 将文件中的当前位置设置为新位置。 |
| ftell(file_pointer as FILE ptr) as long | 获取文件中的当前位置。 |
| fwrite(buffer as zstring ptr, size as size_t, count as size_t file_pointer as FILE ptr) as size_t | 将缓冲区中的未格式化数据写入流。 |
| getc(file_pointer as FILE ptr) as integer | 从流中读取字符。 |
| getchar() as integer | 从 stdin 读取字符。 |
| gets(buffer as zstring ptr) as zstring ptr | 从 stdin 读取一行到缓冲区。 |
| printf(format as zstring ptr _string, args) as integer | 将格式化输出写入 stdout。 |
| putc(c as integer, file_pointer as FILE ptr) as integer | 将字符写入流。 |
| putchar(c as integer) as integer | 将字符写入 stdout。 |
| puts(string1 as zstring ptr) as integer | 将 zstring 写入 stdout。 |
| rewind(file_pointer as FILE ptr) | 重绕文件。 |
| scanf(format_string as zstring ptr, args) as integer | 从 stdin 读取格式化输入。 |
| setbuf(file_pointer as FILE ptr, buffer as zstring ptr) | 为流设置新缓冲区。 |
| setvbuf(file_pointer as FILE ptr, buffer as zstring ptr, buf_type as integer, buf as size_t size) as integer | 设置新缓冲区并控制流上的缓冲级别。 |
| sprintf(string1 as zstring ptr, format_string as zstring ptr, args) as integer | 将格式化输出写入 zstring。 |
| sscanf(buffer as zstring ptr, format_string as zstring ptr, args) as integer | 从 zstring 读取格式化输入。 |
| tmpfile() as FILE ptr | 打开临时文件。 |
| tmpnam(file_name as zstring ptr) as zstring ptr | 获取临时文件名。 |
| ungetc(c as integer, file_pointer as FILE ptr) as integer | 将字符推回流的缓冲区 |
低级 I/O
#include "crt/io.bi"
目前仅 Win32,连接到 MSVCRT.DLL(其他平台缺少头文件)
| 原型(含参数) | 说明 |
|---|---|
| _close(handle as integer) as integer | 关闭为无缓冲 I/O 打开的文件。 |
| _creat(filename as zstring ptr, pmode as integer) as integer | 创建具有指定权限设置的新文件。 |
| _eof(handle as integer) as integer | 检查文件结束。 |
| _lseek(handle as integer, offset as long, origin as integer) as long | 转到文件中的特定位置。 |
| _open(filename as zstring ptr, oflag as integer, pmode as uinteger) as integer | 打开文件进行低级 I/O。 |
| _read(handle as integer, buffer as zstring ptr, length as uinteger) as integer | 从文件中将二进制数据读入缓冲区。 |
| _write(handle as integer, buffer as zstring ptr, count as uinteger) as integer | 将缓冲区中的二进制数据写入文件。 |
数学
#include "crt/math.bi"
| 原型(含参数) | 说明 |
|---|---|
| abs_(n as integer) as integer | 获取整数的绝对值。 |
| acos_(x as double) as double | 计算 x 的反余弦。 |
| asin_(x as double) as double | 计算 x 的反正弦。 |
| atan_(x as double) as double | 计算 x 的反正切。 |
| atan2_(y as double, x as double) as double | 计算 y/x 的反正切。 |
| ceil(x as double) as double | 获取大于 x 的最小整数值。 |
| cos_(x as double) as double | 计算以弧度为单位的角的余弦。 |
| cosh(x as double) as double | 计算 x 的双曲余弦。 |
| div(number as integer, denom as integer) as div_t | 用一个整数除以另一个整数。 |
| exp_(x as double) as double | 计算 x 的指数。 |
| fabs(x as double) as double | 计算 x 的绝对值。 |
| floor(x as double) as double | 获取小于 x 的最大整数值。 |
| fmod(x as double, y as double) as double | 用整数商将 x 除以 y 并返回余数。 |
| frexp(x as double, expptr as integer ptr) as double | 将 x 分解为尾数和指数。 |
| labs(n as long) as long | 求长整数 n 的绝对值。 |
| ldexp(x as double, exp as integer) as double | 由尾数和 2 的指数重构 x。 |
| ldiv(number as long, denom as long) as ldiv_t | 用一个长整数除以另一个长整数。 |
| log_(x as double) as double | 计算 log(x)。 |
| log10(x as double) as double | 计算以 10 为底 x 的对数。 |
| modf(x as double, intptr as double ptr) as double | 将 x 分解为小数和整数部分。 |
| pow(x as double, y as double) as double | 计算 x 的 y 次幂。 |
| rand() as integer | 获取 0 到 32767 之间的随机整数。 |
| random(max_num as integer) as integer | 获取 0 到 max_num 之间的随机整数。 |
| randomize() | 为随机数生成器设置随机种子。 |
| sin_(x as double) as double | 计算以弧度为单位的角的正弦。 |
| sinh(x as double) as double | 计算 x 的双曲正弦。 |
| sqrt(x as double) as double | 计算 x 的平方根。 |
| srand(seed as uinteger) | 为随机数生成器(rand)设置新种子。 |
| tan_(x as double) as double | 计算以弧度为单位的角的正切。 |
| tanh(x as double) as double | 计算 x 的双曲正切。 |
内存分配
#include "crt/stdlib.bi"
| 原型(含参数) | 说明 |
|---|---|
| calloc(num as size_t elems, elem_size as size_t) as any ptr | 分配数组并将所有元素初始化为零。 |
| free(mem_address as any ptr) | 释放内存块。 |
| malloc(num as size_t bytes) as any ptr | 分配内存块。 |
| realloc(mem_address as any ptr, newsize as size_t) as any ptr | 重新分配(调整大小)内存块。 |
进程控制
#include "crt/stdlib.bi"
| 原型(含参数) | 说明 |
|---|---|
| abort() | 中止进程。 |
| execl(path as zstring ptr, arg0 as zstring ptr, arg1 as zstring ptr,..., NULL) as integer | 启动子进程(传入命令行)。 |
| execlp(path as zstring ptr, arg0 as zstring ptr, arg1 as zstring ptr,..., NULL) as integer | 启动子进程(使用 PATH,传入命令行)。 |
| execv(path as zstring ptr, argv as zstring ptr) as integer | 启动子进程(传入参数向量)。 |
| execvp(path as zstring ptr, argv as zstring ptr) as integer | 启动子进程(使用 PATH,传入参数向量)。 |
| exit_(status as integer) | 刷新所有缓冲区后终止进程。 |
| getenv(varname as zstring ptr) as zstring ptr | 获取环境变量的定义。 |
| perror(string1 as zstring ptr) | 打印与最后一个系统错误对应的错误消息。 |
| putenv(envstring as zstring ptr) as integer | 将新定义插入环境表。 |
| raise(signum as integer) as integer | 生成 C 信号(异常)。 |
| system_(string1 as zstring ptr) as integer | 执行常驻操作系统命令。 |
搜索和排序
#include "crt/stdlib.bi"
注意:bsearch 和 qsort 所需的 compare 回调函数必须声明为 cdecl。如果其第一个参数在排序数组中应位于第二个参数之前,它必须返回 <0 的值;如果第一个参数应位于第二个参数之后,则返回 >0 的值;如果它们的相对位置无关紧要(相等值),则返回零。
| 原型(含参数) | 说明 |
|---|---|
| bsearch(key as any ptr, base as any ptr, num as size_t, width as size_t, compare as function(elem1 as any ptr, elem2 as any ptr) as integer) as any ptr | 执行二分搜索。 |
| qsort(base as any ptr, num as size_t, width as size_t, compare as function(elem1 as any ptr, elem2 as any ptr) as integer) | 使用快速排序算法对数组进行排序。 |
字符串操作
#include "crt/string.bi"
| 原型(含参数) | 说明 |
|---|---|
| stpcpy(dest as zstring ptr, src as zstring ptr) as zstring ptr | 将一个 zstring 复制到另一个 zstring。 |
| strcmp(string1 as zstring ptr, string2 as zstring ptr) as integer | 比较 string1 和 string2 以确定字母顺序。 |
| strcpy(string1 as zstring ptr, string2 as zstring ptr) as zstring ptr | 将 string2 复制到 string1。 |
| strerror(errnum as integer) as zstring ptr | 获取与指定错误号对应的错误消息。 |
| strlen(string1 as zstring ptr) as integer | 确定 zstring 的长度。 |
| strncat(string1 as zstring ptr, string2 as zstring ptr, n as size_t) as zstring ptr | 将 string2 的 n 个字符追加到 string1。 |
| strncmp(string1 as zstring ptr, string2 as zstring ptr, n as size_t) as integer | 比较两个字符串的前 n 个字符。 |
| strncpy(string1 as zstring ptr, string2 as zstring ptr, n as size_t) as zstring ptr | 将 string2 的前 n 个字符复制到 string1。 |
| strnset(string1 as zstring ptr, c as integer, size _t n) as zstring ptr | 将 zstring 的前 n 个字符设置为 c。 |
| strrchr(string1 as zstring ptr, c as integer) as zstring ptr | 在 zstring 中查找字符 c 的最后一次出现。 |
时间
#include "crt/time.bi"
| 原型(含参数) | 说明 |
|---|---|
| asctime(time as type tm ptr) as zstring ptr | 将时间从 type tm 类型转换为 zstring。 |
| clock() as clock_t | 获取以时钟滴答为单位的已用处理器时间。 |
| ctime(time as time_t ptr) as zstring ptr | 将二进制时间转换为 zstring。 |
| difftime(time_t time2, time_t time1) as double | 计算两个时间之间的差值(以秒为单位)。 |
| gmtime(time as time_t ptr) as type tm ptr | 在 tm 结构中获取格林威治标准时间(GMT)。 |
| localtime(time as time_t ptr) as type tm ptr | 在 tm 结构中获取本地时间。 |
| time_(timeptr as time_t ptr) as time_t | 获取当前时间(以自 1970 年 1 月 1 日 0 时 GMT 以来的秒数)。 |
参见
#include
返回 目录