linux下C/C++头文件梳理,看完这篇再也不会搞糊涂头文件了!

一:前言

进行linux下C/C++服务端后台开发的都知道,需要跟各种头文件打交道。

比如使用printf函数则需要引用#include ,使用STL的map容器则要#include ,使用socket网络编程则要#include

那么我考考你uint32_t是在哪个头文件定义的呢?sleep函数又是在哪个头文件?open和close是在同一个头文件里吗?

是不是有点一时半会答不上来,有没有好的方法能梳理头文件呢,把头文件进行分门别类呢?

答案是可以的。

我把头文件分为以下三类:

  • C标准头文件:一共29个头文件。 http://en.cppreference.com/w/c/header点击打开链接
  • C++标准头文件:除C标准库外,还包括STL标准库等10+个头文件 http://www.cplusplus.com/reference/stl/ 。把C标准头文件放到std的命名空间里,文件名统一加上c前缀,如#include 改成#include 外,
  • linux系统头文件:操作系统相关,如socket网络、共享内存、信号量等,常用的就10+左右。http://pubs.opengroup.org/onlinepubs/7908799/headix.html


二:C标准库

  • #include 字符串操作相关
memcpy /strcpy 区别?
memset
strncpy
  • #include 标准输入输出
fopen/fwrite
printf/scanf
  • #include 标准输入输出
fopen/fwrite
printf/scanf
  • #include 常用的一些函数库
strtol/atoi
malloc/free
rand
qsort
abs/div
size_t

  • #include 函数库
sin/cos
pow/sqrt
ceil/floor
  • #include  
uint32_t
SIZE_MAX
  • #include
islower
toupper
  • #include  
time
mktime
  • #include ...

三、C++标准库

  • 容器类:
  • #include 
    share_ptr
  • #include
    min/max
    merge
    lower_bound/upper_bound
    sort
    unique
    remove
    copy
    find
  • #include ...

四、Linux系统函数库

  • #include 
    chown()
    close()/write()/read()
    fsync()
    sleep()/usleep()
    getpid()
  • #include
    open()
    create()
    fcntl()
  • #include
  • #include 
    open()
    create()
    fcntl()
  • #include 
  • sys目录下
 

五、结语

这样是不是一目了然,清晰很多。

你可能感兴趣的:(编程语言)