C语言标准函数库
这个表是c语言标准库中的函数原型列表,是按照字母顺序和按照功能分组排列的。

字母顺序列表
缓冲区处理
类型和转换类型
数据转换
目录操作
文件操作
流 I/O
底层 I/O
数学
内存分配
进程控制
搜索和排序
字符串处理
时间

说明

注解列是非常简短的函数使用说明。这个列表尚未完成,不过,它提供了C运行时库的主要函数的信息。一些在其它地方的C库函数可能在FreeBasic是无效的。注意检测引用文件可以找到更多信息。

注意: 以下的函数原型并非是官方的 FreeBasic 提供的原型 (看引用文件),无论如何,它们将给你足够的信息以完全地使用函数。

在引用文件列内的文件名是你必须引用的,在你的程序开始处使用 # Include引用文件。如果你不引用对应的文件,程序无法编译,或它们在编译时正确但在运行时给出一个不正确的结果。所有C运行时库的头文件位于 crt 目录下;例如,如果你指定头文件为 math.bi, 引用 "crt/math.bi" 或 引用 "crt\math.bi", 我们最好引用 "crt.bi",一次性引用所有全部。

原型列内容有以下信息:
    • 函数名称;
    • 圆括号中是函数必须的参数,加上参数的数据类型;
    • 函数的返回值数据类型。

例如 atoi(a as zstring ptr) as integer 意思是函数 atoi 返回一个数据类型为 Integer的值, 并且需要一个 zstring ptr 作为它的参数。

字母顺序列表


名称 原型 (和参数) 引用文件 注解
abs abs(n as integer) as integer stdlib.bi 返回绝对值
acos acos(a as Double) as Double math.bi 返回反余弦 (角度as弧度)
asin asin(a as Double) as Double math.bi 返回asin (角度as弧度)
atan atan(a as Double) as Double math.bi 返回Atan (角度as弧度)
atan2 atan2(y as Double, x as Double) as Double math.bi 返回Atan (传递相对的 as y 和 相邻的 as x)
atoi atoi(s as zstring ptr) as integer stdlib.bi 转换数字文本到一个integer数值。
atof atof(s as zstring ptr) as Double stdlib.bi 转换数字文本到一个Double数值。
calloc calloc(NumElts as integer, EltSiz as integer) as Any ptr stdlib.bi 申请内存。返回ptr型指向一个缓冲区 为一个数组有NumElts成员, 每个的尺寸是 EltSiz字节。
ceil ceil(d as Double) as Double math.bi 返回最接近的整数大于传入的值。Fix
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 返回除法的商和余数as结构类型 div_t.
ecvt ecvt(x as Double) as zstring ptr math.bi 转换数值到字符串。
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 返回绝对值 类型 asDouble.
fclose fclose(s as FILE ptr) as FILE ptr stdio.bi Close文件。返回 0 如果成功否则文件尾
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 刷新(i.e. 删除) 一个流(使用标准输入刷新流从键盘缓冲区). 返回 0 如果 成功。
fgetc fgetc(s as FILE ptr) as integer stdio.bi 单个字符输入 (as ascii) 从传入的流 (标准输入键盘缓冲区).
fgetpos fgetpos(s as FILE ptr, c as fpos_t ptr) as integer stdio.bi 保存文件ptr在流 s 的位置到 c.里。取文件流ptr位置
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 指示二进制mode(模式).
fprintf fprintf(s as FILE ptr, fmt as zstring ptr, ...) as integer stdio.bi 输出到流 s 为多个项目为单个 % 标注在fmt 对应参数列表的内容。
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 读取 c 个组尺寸数据为 b 字节从文件 s 到缓冲区 buf. 返回实际读取数据组的数目。
free free(p as Any ptr) stdlib.bi 释放分配给ptr型 p 的内存,允许这些内存可再使用。
freopen freopen(file as zstring ptr, mode as zstring ptr, s as FILE ptr) as FILE ptr stdio.bi 打开一个文件as重定向一个流,例如 freopen("myfile", "w", stdout) 将重定向标准输出到打开的 "myfile".
frexp frexp(x as Double, p as integer ptr) as Double math.bi 计算一个值 m 因为 x 等于 m  2 次幂. p 是ptr型指向m。求平方根
fscanf fscanf(s as FILE ptr, fmt as zstring ptr, ...) as integer stdio.bi 从 s 流读取as多个组有 % 标识在 fmt 相应列出的ptr型
fseek fseek(s as FILE ptr, offset as integer, origin as integer) as integer stdio.bi 定位文件ptr。起始点as 0, 1 或 2 开始, 偏移bytes(字节数)到流结束位置。
fsetpos fsetpos(s as FILE ptr, p as fpos_t ptr) as integer stdio.bi 设置流 s文件ptr值为 p.指向的。
ftell ftell(s as FILE ptr) as long stdio.bi 定位 流s文件ptr的位置.
fwrite fwrite(buf as Any ptr, b as integer, c as integer, s as FILE ptr) as integer stdio.bi 写出c 个组 数据尺寸as b 字节从缓冲区 buf 到文件 s. 返回实际写入数据组的数目。
getc getc(s as FILE ptr) as integer stdio.bi 单个输入文本 (in ascii) 从传入的流. (标准输入键盘缓冲区)
getchar getchar() as integer stdio.bi 单个输入字符从标准输入
gets gets(b as zstring ptr) as zstring ptr stdio.bi 读取一个字符流从标准输入直到 遇到 \n 或 文件尾.
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 返回参数以10as底的对数。
malloc malloc(bytes as integer) as Any ptr stdlib.bi 申请内存。返回ptr型指向指定大小的缓冲区。
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 输出基本输出as许多组有单一 % 标识符在 fmt 匹配列表中的参数。
putc putc(c as integer, s as FILE ptr) as integer stdio.bi  输出单个字符到流 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 重新申请内存。返回指向一个缓冲区as改变目标尺寸的 p.
rewind rewind(s as FILE ptr) stdio.bi 流除一个文件流中指示的错误 (读 或写). 必需在读取一个改进文件之前。
scanf scanf(fmt as zstring ptr, ?) as integer stdio.bi 从基本输入读取一些组as有 % 标识在 fmt 相应列出的ptr。 
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 输出到字符 p as多个组为单个 % 标识到 fmt 有匹配到参数列表的。
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 读取as多个组as有 % 标识到 fmt 相应列出的ptr。
strcat strcat(s1 as zstring ptr, s2 as zstring ptr) as zstring ptr 文本.bi 连接 (追加) 字符串 s2 到 s1.
strchr strchr(s as zstring ptr, c as integer) as zstring ptr 文本.bi 返回ptr指向 c在 s中最先出现的 或 NULL 如果没有发现。
strcmp strcmp(s1 as zstring ptr, s2 as zstring ptr) as integer string.bi 比较 字符串 s2 到 s1. 返回 0 或 最先不匹配的字符asascii 值比较结果。 
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 返回一个ptr指向系统发生的错误信息对应的传入的错误码。
strlen strlen(s as zstring ptr) as integer string.bi 返回一个以空中止指向s 的字符串的bytes(字节数)(总数非空).
strncat strncat(s1 as zstring ptr, s2 as zstring ptr, n as integer) as zstring ptr string.bi 连接(追加) n 个字从 字符串 s2 到 s1.
strncmp strncmp(s1 as zstring ptr, s2 as Any ptr, n as integer) as integer string.bi 比较字符串 s2的 n bytes(字节数)到同样的s1. 返回 0 或 首个不匹配字符的ascii 值的负数差别。
strncpy strncpy(s1 as zstring ptr, s2 as zstring ptr, n as integer) as zstring ptr string.bi 复制 n bytes(字节数)从 s2 到 s1.
strpbrk strpbrk(s1 as zstring ptr, s2 as zstring ptr) as zstring ptr string.bi 返回一个ptr指向在s1中首个遇到字符串s2.
strrchr strrchr(s as zstring ptr, c as integer) as zstring ptr string.bi 返回ptr指向在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 寻找字符串 s2 在 s1 中的位置,并且ptr指向它的最先字符。
strtod strtod(s as zstring ptr, p as zstring ptr) as Double stdlib.bi 转换 字符串CDbl, 假设字符串是数字形式的。
strtok strtok(s1 as zstring ptr, s2 as zstring ptr) as zstring ptr string.bi 返回ptr指向利用字符串 s1的连续标记. 标记可以看作是分隔符被排列在 s2.
system system(command as zstring ptr) as integer stdlib.bi Exec,从一个程序的内部,命令行地址指向操作系统写入的字符串。
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 转换字符从大写LCase(asascii码).
toupper toupper(c as integer) as integer ctype.bi 转换字符从小写UCase(asascii码).
ungetc ungetc(c as integer, s as FILE ptr) as integer stdio.bi 推一个字符 c 返回到流 s, 返回文件尾如果不成功,不推多于一个的字符。


缓冲区处理


#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 LCase.
toupper(c as integer) as integer 转换 c 到大小.


数据转换


#include "crt/stdlib.bi"

原型 (和参数) 注解
atof(string1 as zstring ptr) as Double 转换字符串到浮点小数值。
atoi(string1 as zstring ptr) as integer 转换字符串到一个整数值。
atol(string1 as zstring ptr) as integer 轻换字符串到一个整数值。
itoa(value as integer, zstring as zstring ptr, radix as integer) as zstring ptr 转换一个整数值到一个字符串用 radix.指定的进制文本格式。
ltoa(value as long, zstring as zstring ptr, radix as integer) as zstring ptr 转换一个整数到字符串用给定的进制格式。
strtod(string1 as zstring ptr, endptr as zstring ptr) as Double 转换字符串到一个浮点小数值。
strtol(string1 as zstring ptr, endptr as zstring ptr, radix as integer) as long 转换字符串到一个整数使用给定的进制格式。
strtoul(string1 as zstring ptr, endptr as zstring ptr, radix as integer) as ulong 转换字符串到Unsigned整数。


目录操作


#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 Close一个文件
feof(file_pointer as FILE ptr) as integer 检测文件结束是否发生在一个流。
ferror(file_pointer as FILE ptr) as integer 检测在文件 I/0期间是否有错误发生。
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 从一个文件中读字符串。
fopen(filename as zstring ptr, access_mode as zstring ptr) as FILE ptr 打开一个文件给缓冲 I/0.
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 写一个字符到基本输出。
fputs(string1 as zstring ptr, file_pointer as FILE ptr) as integer 写一个字符串到一个流。
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 重分配一个文件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 从基本输入读取一个字符。
gets(buffer as zstring ptr) as zstring ptr 从基本输入读取一行到一个缓冲区
printf(format as zstring ptr _string, args) as integer 写出格式化文本输出到基本输出。
putc(c as integer, file_pointer as FILE ptr) as integer 写出一个字符到一个流。
putchar(c as integer) as integer 写出一个字符到基本输出。
puts(string1 as zstring ptr) as integer 写出一个字符串到基本输出。
rewind(file_pointer as FILE ptr) 反绕一个文件。
scanf(format_string as zstring ptr, args) as integer 读取格式化文本输入从基本输入。
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 写出格式化文本输出到一个字符串。
sscanf(buffer as zstring ptr, format_string as zstring ptr, args) as integer 读取格式化输入从一个字符中。
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 Close一个文件打开为无缓冲的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.的asin。
atan(x as Double) as Double 计算 x.的Atan。
atan2(y as Double, x as Double) as Double 计算 y/x.的Atan。
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 重构 x 来自对数和二指数。
ldiv(number as long, denom as long) as ldiv_t 用整数除以另一个。
log(x as Double) as Double 计算自然对数(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 和 32.之间。
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 Run一个子进程 (传递命令行).
execlp(path as zstring ptr, arg0 as zstring ptr, arg1 as zstring ptr,..., NULL) as integer Run一个子进程(用 PATH, 传递命令行).
execv(path as zstring ptr, argv as zstring ptr) as integer Run一个子进程(传递参数变量).
execvp(path as zstring ptr, argv as zstring ptr) as integer Run一个子进程(用 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 Exec一个内置操作系统命令


搜索和排序


#include "crt/stdlib.bi"
注意:  比 较 回调函数必需的搜索和排序必须声是为 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 复制一个字符串到另一个。
strcmp(string1 as zstring ptr, string2 as zstring ptr) as integer 比较 string1 和 string2 以字母顺序as规则
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 确定一个字符串的长度。
strncat(string1 as zstring ptr, string2 as zstring ptr, n as size_t) as zstring ptr Append n 个字符从string2 到 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 设置字符串开始处 n 字符为 c.
strrchr(string1 as zstring ptr, c as integer) as zstring ptr 在字符串中寻找最后一个出现的 c字符。


时间


#include "crt/time.bi"

原型 (和参数) 注解
asctime(time as type tm ptr) as zstring ptr 转换时间从类型 tm 到字符串
clock() as clock_t 取进程经过的时间在定时器里。
ctime(time as time_t ptr) as zstring ptr 转换二进制时间到字符串。
difftime(time_t time2, time_t time1) as Double 计算两个时间的差值,单位为秒。
gmtime(time as time_t ptr) as type tm ptr 取格林尼治时间 (GMT)在一个 tm 结构里。
localtime(time as time_t ptr) as type tm ptr 取本地时间在一个 tm 结构里。
time(timeptr as time_t ptr) as time_t 取当前时间从 0 时 GMT 1/1/70开始经历的秒数。.


请参阅