Skip to content

C 标准库函数


这是标准 C 库中函数原型的字母顺序列表以及按功能分组的原型列表。

字母顺序列表

缓冲区操作

字符分类和转换

数据转换

目录操作

文件操作

流 I/O

低级 I/O

数学

内存分配

进程控制

搜索和排序

字符串操作

时间

描述

注释列包含函数用途的简要描述。该列表并不完整,但提供了 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 integerstdlib.bi返回绝对值(即正值)
acos_acos_(a as double) as doublemath.bi返回反余弦(角度,以弧度为单位)
asin_asin_(a as double) as doublemath.bi返回反正弦(角度,以弧度为单位)
atan_atan_(a as double) as doublemath.bi返回反正切(角度,以弧度为单位)
atan2_atan2_(y as double, x as double) as doublemath.bi返回反正切(传入对边作为 y,邻边作为 x)
atoiatoi(s as zstring ptr) as integerstdlib.bi将数字字符 zstring 转换为整数类型数字。
atofatof(s as zstring ptr) as doublestdlib.bi将数字字符 zstring 转换为 double 类型数字。
calloccalloc(NumElts as integer, EltSiz as integer) as any ptrstdlib.bi分配内存。返回指向具有 NumElts 个元素(每个元素大小为 EltSiz 字节)的数组缓冲区的指针。
ceilceil(d as double) as doublemath.bi返回不低于传入值的最接近整数。
clearerrclearerr(s as FILE ptr)stdio.bi清除文件流(读或写)上的错误指示器。
cos_cos_(ar as double) as doublemath.bi返回以弧度为单位的角的余弦。
coshcosh(x as double) as doublemath.bi返回以弧度为单位的角的双曲余弦。
divdiv(num as integer, denom as integer) as div_tstdlib.bi以 div_t 类型结构的形式返回除法的商和余数。
ecvtecvt(x as double) as zstring ptrmath.bi将数字转换为 zstring。
exit_exit_(status as integer)stdlib.bi退出程序。它将刷新文件缓冲区并关闭所有打开的文件,并运行由 atexit() 调用的任何函数。
exp_exp_(a as double) as doublemath.bi返回 e 的参数次幂的值(自然对数的反函数)。
fabsfabs(d as double) as doublemath.bi返回 double 类型的绝对值(即正值)。
fclosefclose(s as FILE ptr) as FILE ptrstdio.bi关闭文件。成功返回 0,否则返回 EOF。
feoffeof(s as FILE ptr) as integerstdio.bi返回文件结束指示器的值(非文件结束则为 0)。指示器会自动清除,但可以通过 clearerr() 重置。
ferrorferror(s as FILE ptr) as integerstdio.bi返回流的错误指示器(无错误则为 0)。错误指示器可通过 clearerr() 或 rewind() 重置。
fflushfflush(s as FILE ptr) as integerstdio.bi刷新(即删除)流(使用 stdin 刷新来自键盘的流)。成功返回 0。
fgetcfgetc(s as FILE ptr) as integerstdio.bi从传入的流中进行单字符输入(ASCII 码)(stdin 为键盘)。
fgetposfgetpos(s as FILE ptr, c as fpos_t ptr) as integerstdio.bi将流 s 上的文件指针位置保存到 c 所指向的位置。
fgetsfgets(b as zstring ptr, n as integer, s as FILE ptr) as zstring ptrstdio.bi从流 s 中读取最多 n-1 个字符到缓冲区 b。
floorfloor(d as double) as doublemath.bi返回不高于传入值的最接近整数。
fmodfmod(x as double, y as double) as doublemath.bi计算 x 除以 y 的余数。
fopenfopen(file as zstring ptr, mode as zstring ptr) as FILE ptrstdio.bi打开文件。传入文件的 DOS 名称和表示读取、写入或追加的代码。代码:r 读取,w 写入,+ 读写,a 追加,b 二进制。
fprintffprintf(s as FILE ptr, fmt as zstring ptr, ...) as integerstdio.bi将与 fmt 中单个 % 符号数量匹配的项打印到流 s 中。
fputcfputc(c as integer, s as FILE ptr) as integerstdio.bi将单个字符 c 输出到流 s。
fputsfputs(b as zstring ptr, s as FILE ptr) as integerstdio.bi将 b 中的字符流发送到流 s,操作失败返回 0。
freadfread(buf as any ptr, b as size_t, c as size_t, s as FILE ptr) as integerstdio.bi从文件 s 中读取 c 个大小为 b 字节的数据项到缓冲区 buf。返回实际读取的数据项数量。
freefree(p as any ptr)stdlib.bi释放指针 p 的内存分配以使该内存可用。
freopenfreopen(file as zstring ptr, mode as zstring ptr, s as FILE ptr) as FILE ptrstdio.bi打开文件以重定向流。例如,freopen("myfile", "w", stdout) 将把标准输出重定向到打开的 "myfile"。
frexpfrexp(x as double, p as integer ptr) as doublemath.bi计算值 m,使得 x 等于 m 乘以 2 的某个幂。p 是指向 m 的指针。
fscanffscanf(s as FILE ptr, fmt as zstring ptr, ...) as integerstdio.bi从流 s 中读取与 fmt 中 % 符号数量对应的项(配合列出的指针)。
fseekfseek(s as FILE ptr, offset as integer, origin as integer) as integerstdio.bi定位文件指针。origin 为 0、1 或 2,分别表示流的开始、偏移字节处和末尾。
fsetposfsetpos(s as FILE ptr, p as fpos_t ptr) as integerstdio.bi将流 s 的文件指针设置到 p 所指向的值。
ftellftell(s as FILE ptr) as longstdio.bi定位流 s 的文件指针位置。
fwritefwrite(buf as any ptr, b as integer, c as integer, s as FILE ptr) as integerstdio.bi将缓冲区 buf 中 c 个大小为 b 字节的数据项写入文件 s。返回实际写入的数据项数量。
getcgetc(s as FILE ptr) as integerstdio.bi从传入流中进行单字符输入(ASCII 码)的宏。(stdin 为键盘)
getchargetchar() as integerstdio.bi从标准输入读取单个字符
getsgets(b as zstring ptr) as zstring ptrstdio.bi从标准输入读取字符流,直到遇到 \n 或 EOF。
hypothypot(x as double, y as double) as doublemath.bi从边 x 和 y 计算斜边。
isalnumisalnum(c as integer) as integerctype.bi如果字符 c 是字母或数字,则返回非零值。
isalphaisalpha(c as integer) as integerctype.bi如果字符 c 是字母,则返回非零值。
iscntrliscntrl(c as integer) as integerctype.bi如果字符 c 是控制字符,则返回非零值。
isdigitisdigit(c as integer) as integerctype.bi如果字符 c 是数字,则返回非零值。
isgraphisgraph(c as integer) as integerctype.bi如果字符 c 是字母,则返回非零值。
islowerislower(c as integer) as integerctype.bi如果字符 c 是小写字符,则返回非零值。
isprintisprint(c as integer) as integerctype.bi如果字符 c 是可打印字符,则返回非零值。
ispunctispunct(c as integer) as integerctype.bi如果字符 c 是标点符号字符,则返回非零值。
isspaceisspace(c as integer) as integerctype.bi如果字符 c 表示空格,则返回非零值。
isupperisupper(c as integer) as integerctype.bi如果字符 c 是大写字符,则返回非零值。
isxdigitisxdigit(c as integer) as integerctype.bi如果字符 c 是十六进制数字(0 到 F 或 f),则返回非零值。
ldexpldexp(x as double, n as integer) as doublemath.bi返回 x 与 2 的 n 次幂的乘积。
ldivldiv(num as long, denom as long) as ldiv_tstdlib.bi以 ldiv_t 类型结构的形式返回除法的商和余数。
log_log_(a as double) as doublemath.bi返回参数的自然对数。
log10log10(a as double) as doublemath.bi返回参数以 10 为底的对数。
mallocmalloc(bytes as integer) as any ptrstdlib.bi分配内存。返回指向指定大小存储空间缓冲区的指针。
modfmodf(d as double, p as double ptr) as doublemath.bi返回浮点数 d 的小数部分。p 指向以浮点数表示的整数部分。
perrorperror(mess as zstring ptr)stdio.bi将作为参数传递的消息打印到流 stderr。
powpow(x as double, y as double) as doublemath.bi返回 x 的 y 次幂。
pow10pow10(x as double) as doublemath.bi返回 10 的 x 次幂(log10() 的反函数)。
printfprintf(fmt as zstring ptr, ...) as integerstdio.bi将与 fmt 中单个 % 符号数量匹配的项打印到标准输出。
putcputc(c as integer, s as FILE ptr) as integerstdio.bi将单个字符 c 输出到流 s 的宏。
putcharputchar(c as integer) as integerstdio.bi将单个字符 c 输出到标准输出的宏。
putsputs(b as zstring ptr) as integerstdio.bi将 b 中的字符流发送到标准输出,操作失败返回 0。
randrand() as integerstdlib.bi返回伪随机数。需要种子。种子通过 srand 设置。
reallocrealloc(p as any ptr, newsize as size_t) as any ptrstdlib.bi分配内存。返回指向 p 所指对象大小改变后的缓冲区的指针。
rewindrewind(s as FILE ptr)stdio.bi清除文件流(读或写)上的错误指示器。在读取修改后的文件之前必须使用。
scanfscanf(fmt as zstring ptr, ...) as integerstdio.bi从标准输入读取与 fmt 中 % 符号数量对应的项(配合列出的指针)。
sin_sin_(ar as double) as doublemath.bi返回以弧度为单位的角的正弦。
sinhsinh(x as double) as doublemath.bi返回以弧度为单位的角的双曲正弦。
sprintfsprintf(p as zstring ptr, fmt as zstring ptr, ...) as integerstdio.bi将与 fmt 中单个 % 符号数量匹配的项打印到 zstring p。
sqrtsqrt(a as double) as doublemath.bi返回传入值的平方根。如果值为负数,则产生域错误。
srandsrand(seed as uinteger)stdlib.bi设置随机数的种子。一个可能的种子是当前时间。
sscanfsscanf(b as zstring ptr, fmt as zstring ptr, ...) as integerstdio.bi从缓冲区 b 中读取与 fmt 中 % 符号数量对应的项(配合列出的指针)。
strcatstrcat(s1 as zstring ptr, s2 as zstring ptr) as zstring ptrstring.bi将 zstring s2 连接(追加)到 s1。
strchrstrchr(s as zstring ptr, c as integer) as zstring ptrstring.bi返回指向 s 中 c 第一次出现的指针,如果未找到则返回 NULL。
strcmpstrcmp(s1 as zstring ptr, s2 as zstring ptr) as integerstring.bi比较 zstring s2 和 s1。返回 0 或第一个不匹配字符的 ASCII 值的有符号差。
strcpystrcpy(s1 as zstring ptr, s2 as zstring ptr) as zstring ptrstring.bi将 s2 复制到 s1。
strcspnstrcspn(s1 as zstring ptr, s2 as zstring ptr) as integerstring.bi返回 s1 中在遇到 s2 中任何字符之前的字符数。
strerrorstrerror(n as integer) as zstring ptrstring.bi返回指向与传入错误号对应的系统错误消息的指针。
strlenstrlen(s as zstring ptr) as integerstring.bi返回 s 所指向的以 null 结尾的 zstring 中的字节数(不计 null)。
strncatstrncat(s1 as zstring ptr, s2 as zstring ptr, n as integer) as zstring ptrstring.bi将 zstring s2 的 n 个字节连接(追加)到 s1。
strncmpstrncmp(s1 as zstring ptr, s2 as any ptr, n as integer) as integerstring.bi比较 zstring s2 的 n 个字节与 s1 的对应字节。返回 0 或第一个不匹配字符的 ASCII 值的有符号差。
strncpystrncpy(s1 as zstring ptr, s2 as zstring ptr, n as integer) as zstring ptrstring.bi将 s2 的 n 个字节复制到 s1。
strpbrkstrpbrk(s1 as zstring ptr, s2 as zstring ptr) as zstring ptrstring.bi返回指向 s1 中第一个也在 s2 中的字符的指针。
strrchrstrrchr(s as zstring ptr, c as integer) as zstring ptrstring.bi返回指向 s 中 c 最后一次出现的指针,如果未找到则返回 NULL。
strspnstrspn(s1 as zstring ptr, s2 as zstring ptr) as integerstring.bi返回 s1 中在遇到不在 s2 中的字符之前的字符数。
strstrstrstr(s1 as zstring ptr, s2 as zstring ptr) as zstring ptrstring.bi在 s1 中找到 zstring s2 的位置并返回指向其首字符的指针。
strtodstrtod(s as zstring ptr, p as zstring ptr) as doublestdlib.bi将 zstring 转换为 double,前提是 zstring 以数字形式书写。
strtokstrtok(s1 as zstring ptr, s2 as zstring ptr) as zstring ptrstring.bi利用 zstring s1 返回连续标记的指针。s2 中列出的字符被视为分隔符。
systemsystem(command as zstring ptr) as integerstdlib.bi从程序内部执行以 zstring 形式书写的操作系统命令(例如 Windows 和 DOS 上的 DIR 以及 Linux 上的 LS)。
tan_tan_(ar as double) as doublemath.bi返回以弧度为单位的角的正切。
tanhtanh(x as double) as doublemath.bi返回以弧度为单位的角的双曲正切。
tolowertolower(c as integer) as integerctype.bi将字符从大写转换为小写(使用 ASCII 码)。
touppertoupper(c as integer) as integerctype.bi将字符从小写转换为大写(使用 ASCII 码)。
ungetcungetc(c as integer, s as FILE ptr) as integerstdio.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"

注意:bsearchqsort 所需的 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

返回 目录

基于 FreeBASIC 官方文档翻译 如有侵权请联系我们删除
FreeBASIC 是开源项目,与微软公司无隶属关系