C/C++( Linux mac)标准库的头文件有什么规律吗,总是忘记函数在那个文件怎么破?

2019-06-06 17:33:36 +08:00
 lowett

使用的频次不是很高,记得 api 函数名,但是不记得在那个头文件,怎么弄?

还有就是头文件点进去也没注释,也看不出要传的是什么?

比如,什么也看不出来呀:

int	open(const char *, int, ...) __DARWIN_ALIAS_C(open);

对于熟悉的还有都能记得,有时候是通过代码提示进去,什么也看不到。

现在装了个 Dash,每次都去搜,有点烦,求帮助。

开发环境:
Mac os

Clion/Vscode

3119 次点击
所在节点    C
14 条回复
besto
2019-06-06 17:35:18 +08:00
man open
whoisnian
2019-06-06 17:42:52 +08:00
$ man man
...
1 可执行程序或 shell 命令
2 系统调用(内核提供的函数)
3 库调用(程序库中的函数)
4 特殊文件(通常位于 /dev)
5 文件格式和规范,如 /etc/passwd
6 游戏
7 杂项(包括宏包和规范,如 man(7),groff(7))
8 系统管理命令(通常只针对 root 用户)
9 内核例程 [非标准
...

所以一般 man 2 open 或者 man 3 open,找自己需要的。
ysc3839
2019-06-06 17:45:59 +08:00
如果是 C/C++ 标准中的函数还可以去 https://en.cppreference.com 查询。
lolcat
2019-06-06 17:48:48 +08:00
man 3 open
zhuangzhuang1988
2019-06-06 17:52:22 +08:00
哈哈哈哈哈
这时候你就知道 windows 的函数设计是多么合理
以及 ide 加成是多么好。
ysc3839
2019-06-06 17:55:33 +08:00
@zhuangzhuang1988 Windows 的头文件里面也没有注释的,不懂的还是得查微软文档。而且 Windows 没有离线的 man。
zhuangzhuang1988
2019-06-06 18:11:42 +08:00
@ysc3839
HANDLE
WINAPI
CreateFileW(
_In_ LPCWSTR lpFileName,
_In_ DWORD dwDesiredAccess,
_In_ DWORD dwShareMode,
_In_opt_ LPSECURITY_ATTRIBUTES lpSecurityAttributes,
_In_ DWORD dwCreationDisposition,
_In_ DWORD dwFlagsAndAttributes,
_In_opt_ HANDLE hTemplateFile
);
起码会告诉 输入输出, 名字也很清楚,没啥缩写
MeteorCat
2019-06-06 18:14:14 +08:00
jb 的 IDE 有定位而且源代码都有文档
lowett
2019-06-06 19:07:16 +08:00
@MeteorCat 没有吧
MeteorCat
2019-06-06 19:29:35 +08:00
@lowett 我都是 clion 点击代码跳转进去的,一般里面有些有写明的
FrankHB
2019-06-12 00:08:16 +08:00
常备文档,不要头铁死记硬背。
FrankHB
2019-06-12 00:10:45 +08:00
@zhuangzhuang1988 合理? CreateProcessEx ? CreateFile2 ??

虽然 dup2 之类也欠揍,但起码少指关节劳损……
FrankHB
2019-06-12 00:15:55 +08:00
@zhuangzhuang1988
另外,你真的敢光看声明不看一坨 dw 之类的 flags 什么意思么……你敢背得清楚 MSDN 里对某个 flags 组合的可用性和版本要求么……

(反过来小声 bb:你敢保证 MSDN 没 bug 么……)(顺便当年随便看 ucrt 源码都能发现 errno 错误码映射错的……)

还有,GetVersionEx 为什么被 deprecated 然后用一坨 zz 接替了,这个逻辑你能解释一下么……
zhuangzhuang1988
2019-06-12 09:52:38 +08:00
@FrankHB 幻の上帝?? 头像好熟悉

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/571598

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX