有时我很难理解C函数名代表什么。例如:函数sigprocmask
改变了阻塞信号的集合,但我不知道缩写procmask
是什么意思。linux man page描述了函数的行为,但没有提到缩写。
另一个例子是常量SIGWINCH
。我知道这是一个窗口大小改变的信号,但是如果有一个简单的声明“SIGWINCH
=SignalWindowChanged”会很方便。* 有人知道这样的资源吗?* 我看了几个,他们都描述了行为,但是忽略了焦距。谢谢!
有时我很难理解C函数名代表什么。例如:函数sigprocmask
改变了阻塞信号的集合,但我不知道缩写procmask
是什么意思。linux man page描述了函数的行为,但没有提到缩写。
另一个例子是常量SIGWINCH
。我知道这是一个窗口大小改变的信号,但是如果有一个简单的声明“SIGWINCH
=SignalWindowChanged”会很方便。* 有人知道这样的资源吗?* 我看了几个,他们都描述了行为,但是忽略了焦距。谢谢!
1条答案
按热度按时间lyfkaqu11#
我记得在我学习C语言的早期,知道函数缩写代表什么对我帮助很大,所以这是一个揭开缩写神秘面纱的尝试。
这篇文章关注的是缩写,而不是含义。因此,需要提出一些重要的观点:
iswprint()
是“is wide printable”的缩写。意思是“wide character is a printing character”SIGFPE
中的FPE
代表“浮点异常”,但该类别是算术异常。例如,qsort()
代表“快速排序”,但标准不需要这种算法,它通常被实现为多态排序。标准库
结构遵循https://en.cppreference.com/w/c
类型支持
| 符号|意义|
| --|--|
|
size_t
个|大小类型||
ptrdiff_t
个|指针差类型||
NULL
个|null||
max_align_t
个|最大对齐类型||
offsetof
个|偏移||
alignas
|对齐为||
alignof
个|对齐||
noreturn
个|无回|程序支持工具
程序终止
| 符号|意义|
| --|--|
|
abort
个|中止||
exit
个|出口||
quick_exit
|快速退出||
_Exit
个|出口||
atexit
个|号出口||
at_quick_exit
个|在快速出口处|与环境通信
| 符号|意义|
| --|--|
|
system
个|系统||
getenv
|获取环境(变量)||
getenv_s
个|获取环境(变量)安全|信号
| 符号|意义|
| --|--|
|
signal
个|信号||
raise
个|提高||
sig_atomic_t
个|信号原子类型||
SIG_DFL
个|信号缺省||
SIG_IGN
个|信号忽略||
SIG_ERR
|信号误差|信号类型
| 符号|意义|
| --|--|
|
SIGTERM
|信号终止||
SIGSEGV
|信号分段违例||
SIGINT
|信号中断||
SIGILL
|信号非法指令||
SIGABRT
|信号异常终止||
SIGFPE
|信号浮点异常|非本地跳转
| 符号|意义|
| --|--|
|
setjmp
|跳定||
longjmp
|跳远|类型
| 符号|意义|
| --|--|
|
jmp_buf
|跳转缓冲区|变元函数
| 符号|意义|
| --|--|
|
va_start
个|变量参数启动||
va_end
个|变量参数结束||
va_copy
个|可变变元复制||
va_arg
个|可变变元的变元||
va_list
|可变变元表|内存管理
| 符号|意义|
| --|--|
|
malloc
|内存分配||
calloc
|净分配||
aligned_alloc
|对齐分配||
realloc
|重新分配||
free
|免费|日期和时间实用程序
TODO
字符串库
空终止字节串
字符分类
| 符号|意义|
| --|--|
|
isalnum
|是字母数字的||
isalpha
|是字母的||
islower
|是小写||
isupper
|是大写||
isdigit
|是数字||
isxdigit
|是十六进制数字||
iscntrl
|是控制||
isgraph
|是图形||
isspace
|是空间||
isblank
|为空||
isprint
|是可打印||
ispunct
|是标点符号|字符操作
| 符号|意义|
| --|--|
|
tolower
|为小写||
toupper
|为大写|转换为数字格式
| 符号|意义|
| --|--|
|
atof
| ASCII转浮点||
atoi
| ASCII转int
||
atol
| ASCII转long
||
atoll
| ASCII转long long
||
strtol
|字符串转换为long
||
strtoll
|字符串转换为long long
||
strtoul
|字符串转换为unsigned long
||
strtoull
|字符串转换为unsigned long long
||
strtof
|字符串转换为float
||
strtod
|字符串转换为double
||
strtold
|字符串转换为long double
||
strtoimax
|字符串转换为intmax_t
||
strtoumax
|字符串转换为uintmax_t
|字符串操作
| 符号|意义|
| --|--|
|
strcpy
|字符串复制||
strcpy_s
|串复制安全||
strncpy
| string n copy||
strncpy_s
|字符串 n 复制安全||
strcat
|字符串连接||
strcat_s
|串连接安全||
strncat
|字符串 n 连接||
strncat_s
| string n concatenation safe||
strxfrm
|串变换|字符串检查
| 符号|意义|
| --|--|
|
strlen
|字符串长度||
strlen_s
|字符串长度安全||
strcmp
|字符串比较||
strncmp
|字符串 n 比较||
strcoll
|串核对||
strchr
|字符串(查找)字符||
strrchr
|字符串反向(查找)字符||
strspn
|弦距||
strcspn
|串互补跨距||
strpbrk
|串指针中断||
strstr
|字符串(查找)字符串||
strtok
|字符串标记化||
strtok_s
|字符串标记化安全|字符数组操作
| 符号|意义|
| --|--|
|
memchr
|存储(搜索)字符||
memcmp
|记忆比较||
memset
|内存集||
memset_s
|存储器装置保险箱||
memcpy
|存储器复制||
memcpy_s
|存储复制安全||
memmove
|内存移动||
memmove_s
|存储器移动安全|其他
| 符号|意义|
| --|--|
|
strerror
|字符串错误||
strerror_s
|串错误安全||
strerrorlen_s
|字符串错误长度安全|空终止的多字节字符串
多字节/宽字符转换
| 符号|意义|
| --|--|
|
mblen
|多字节长度||
mbtowc
|多字节转宽字符||
wctomb
|宽字符到多字节||
wctomb_s
|宽字符到多字节安全||
mbstowcs
|多字节字符串到宽字符串||
mbstowcs_s
|多字节字符串到宽字符串安全||
wcstombs
|宽字符串到多字节串||
wcstombs_s
|宽字符串到多字节串安全||
mbsinit
|mbstate_t
初始化||
btowc
|字节到宽字符||
wctob
|宽字符到字节||
mbrlen
|多字节重入长度||
mbrtowc
|多字节重入宽字符||
wcrtomb
|宽字符重入多字节||
wcrtomb_s
|宽字符重入多字节安全||
mbsrtowcs
|重入宽字符串的多字节串||
mbsrtowcs_s
|多字节字符串重入宽字符串安全||
wcsrtombs
|宽字符串重入多字节串||
wcsrtombs_s
|宽字符串重入到多字节串安全||
mbrtoc16
|多字节重入到char16_t
||
c16rtomb
|char16_t
重入到多字节||
mbrtoc32
|多字节重入到char32_t
||
c32rtomb
|char32_t
重入到多字节|类型
| 符号|意义|
| --|--|
|
mbstate_t
|多字节状态类型||
char16_t
|字符十六位类型||
char32_t
|字符32位类型|空终止宽字符串
字符分类
| 符号|意义|
| --|--|
|
iswalnum
|是宽字母数字||
iswalpha
|是宽字母||
iswlower
|是宽的||
iswupper
|是宽的||
iswdigit
|是宽数字||
iswxdigit
|是宽十六进制||
iswcntrl
|广泛控制||
iswgraph
|是宽图形||
iswspace
|是广阔的空间||
iswblank
|一片空白||
iswprint
|可广泛打印||
iswpunct
|是宽标点||
iswctype
|是宽字符类型||
wctype
|宽字符类型|字符操作
| 符号|意义|
| --|--|
|
towlower
|到宽||
towupper
|到宽||
towctrans
|到宽字符转换||
wctrans
|宽字符变换|转换为数字格式
| 符号|意义|
| --|--|
|
wcstol
|宽字符串转换为long
||
wcstoll
|宽字符串转换为long long
||
wcstoul
|宽字符串转换为unsigned long
||
wcstoull
|宽字符串转换为unsigned long long
||
wcstof
|宽字符串转换为float
||
wcstod
|宽字符串到double
||
wcstold
|宽字符串转换为long double
||
wcstoimax
|宽字符串转换为intmax_t
||
wcstoumax
|宽字符串转换为uintmax_t
|字符串操作
| 符号|意义|
| --|--|
|
wcscpy
|宽字符串复制||
wcscpy_s
|宽字符串复制安全||
wcsncpy
|宽字符串 n 复制||
wcsncpy_s
|宽字符串 n 复制安全||
wcscat
|宽字符串连接||
wcscat_s
|宽字符串连接安全||
wcsncat
|宽字符串 n 连接||
wcsncat_s
|宽字符串 n 连接安全||
wcsxfrm
|宽字符串变换|字符串检查
| 符号|意义|
| --|--|
|
wcslen
|宽字符串长度||
wcslen_s
|宽字符串长度安全||
wcscmp
|宽字符串比较||
wcsncmp
|宽字符串 n 比较||
wcscoll
|宽字符串排序规则||
wcschr
|宽字符串(查找)字符||
wcsrchr
|宽字符串反向(查找)字符||
wcsspn
|宽字符串跨度||
wcscspn
|宽字符串互补跨距||
wcspbrk
|宽字符串指针中断||
wcsstr
|宽字符串(查找)字符串||
wcstok
|宽字符串标记化||
wcstok_s
|宽字符串标记化安全|宽字符数组操作
| 符号|意义|
| --|--|
|
wmemchr
|宽存储器(搜索)字符||
wmemcmp
|宽存储器比较||
wmemset
|宽存储器组||
wmemcpy
|宽存储器复制||
wmemcpy_s
|宽存储复制安全||
wmemmove
|宽存储器移动||
wmemmove_s
|宽记忆移动保险箱|类型
| 符号|意义|
| --|--|
|
wchar_t
|宽字符类型||
wint_t
|宽整数类型||
wctrans_t
|宽字符变换型||
wctype_t
|宽字符类型|算法
| 符号|意义|
| --|--|
|
qsort
|快速排序||
qsort_s
|快速分类安全||
bsearch
|二进制搜索||
bsearch_s
|二分搜寻安全|数字
数学函数
TODO
浮点环境
TODO
伪随机数生成
TODO
复数运算
TODO
类型泛型数学
TODO
输入输出支持
TODO
本地化支持
TODO
原子操作库
TODO
线程支持库
TODO
POSIX
TODO