freebsd - 为什么在 minix 的 Lint_strcpy.c 中定义了 strcpy?
问题描述
例如,在 FreeBSD 中,strcpy 定义在 lib/libc/string/strcpy.c 中。为什么在 minix 中它是在 lib/libc/string/Lint_strcpy.c 中定义的,而不是像在 FreeBSD 中那样在 strcpy.c 中定义?Lint 前缀是什么意思?
值得一提的是,在 minix 中,一些函数(如 strpcpy)是这样定义的。我的意思是,strpcpy 在 lib/libc/string/strpcpy.c 中定义,但 strcpy 在 lib/libc/string/Lint_strcpy.c 中定义。这有什么意义?
解决方案
如果您真正查看里面的源代码,lib/libc/string/Lint_strcpy.c
您会发现它是一个空定义。
与最初的NetBSDstrcpy()
源代码一样,用于为 Minix 构建 C 库的实际定义是common/lib/libc/string/strcpy.c
.
这样做是为了可以直接从内核和用户空间的相同源文件共享相同的定义。
前缀表示一个文件,该Lint_
文件仅用于创建“lint library”,并且实际上是在某种程度上简化 lint 库的构建过程的快捷方式(理论上它们也可以/应该使用公共源文件)。
推荐阅读
- c# - 如何向 XML 元素的值添加一些数字(它是连接而不是添加)?
- powershell - 将批处理脚本调用到 Powershell 脚本中
- iis - 具有域用户的IIS AppPool与域外的PC?
- python - Cannot center table on PDF-page when saving a matplotib table using backend_pdf PdfPages
- python - pyinstaller 找不到添加的文件 - Mac OS
- dictionary - 将 NLTK 树转换为字典数组
- node.js - Set Bearer Token to get authorization on Google Cloud Storage objects
- java - onActivityResult wont work after onBackPressed
- javascript - AngularJS - display a default option at the top of a dynamic select dropdown list?
- javascript - Exporting Mongoose methods in Node.js (TypeError: Cannot read property 'name' of null)