是否有文档描述了C函数名“代表”什么(不是它们做什么--而是缩写名称的含义)?

zujrkrfu  于 9个月前  发布在  其他
关注(0)|答案(1)|浏览(73)

有时我很难理解C函数名代表什么。例如:函数sigprocmask改变了阻塞信号的集合,但我不知道缩写procmask是什么意思。linux man page描述了函数的行为,但没有提到缩写。
另一个例子是常量SIGWINCH。我知道这是一个窗口大小改变的信号,但是如果有一个简单的声明“SIGWINCH =SignalWindowChanged”会很方便。* 有人知道这样的资源吗?* 我看了几个,他们都描述了行为,但是忽略了焦距。谢谢!

lyfkaqu1

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

相关问题