V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
lowett
V2EX  ›  C

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

  •  
  •   lowett · 2019-06-06 17:33:36 +08:00 · 3272 次点击
    这是一个创建于 2001 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

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

    开发环境:
    Mac os

    Clion/Vscode

    14 条回复    2019-06-12 09:52:38 +08:00
    besto
        1
    besto  
       2019-06-06 17:35:18 +08:00
    man open
    whoisnian
        2
    whoisnian  
       2019-06-06 17:42:52 +08:00   ❤️ 1
    $ 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
        3
    ysc3839  
       2019-06-06 17:45:59 +08:00 via Android
    如果是 C/C++ 标准中的函数还可以去 https://en.cppreference.com 查询。
    lolcat
        4
    lolcat  
       2019-06-06 17:48:48 +08:00
    man 3 open
    zhuangzhuang1988
        5
    zhuangzhuang1988  
       2019-06-06 17:52:22 +08:00   ❤️ 1
    哈哈哈哈哈
    这时候你就知道 windows 的函数设计是多么合理
    以及 ide 加成是多么好。
    ysc3839
        6
    ysc3839  
       2019-06-06 17:55:33 +08:00 via Android
    @zhuangzhuang1988 Windows 的头文件里面也没有注释的,不懂的还是得查微软文档。而且 Windows 没有离线的 man。
    zhuangzhuang1988
        7
    zhuangzhuang1988  
       2019-06-06 18:11:42 +08:00   ❤️ 2
    @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
        8
    MeteorCat  
       2019-06-06 18:14:14 +08:00 via Android
    jb 的 IDE 有定位而且源代码都有文档
    lowett
        9
    lowett  
    OP
       2019-06-06 19:07:16 +08:00
    @MeteorCat 没有吧
    MeteorCat
        10
    MeteorCat  
       2019-06-06 19:29:35 +08:00 via Android
    @lowett 我都是 clion 点击代码跳转进去的,一般里面有些有写明的
    FrankHB
        11
    FrankHB  
       2019-06-12 00:08:16 +08:00
    常备文档,不要头铁死记硬背。
    FrankHB
        12
    FrankHB  
       2019-06-12 00:10:45 +08:00
    @zhuangzhuang1988 合理? CreateProcessEx ? CreateFile2 ??

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

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

    还有,GetVersionEx 为什么被 deprecated 然后用一坨 zz 接替了,这个逻辑你能解释一下么……
    zhuangzhuang1988
        14
    zhuangzhuang1988  
       2019-06-12 09:52:38 +08:00
    @FrankHB 幻の上帝?? 头像好熟悉
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2331 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 00:02 · PVG 08:02 · LAX 16:02 · JFK 19:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.