找回密码
 注册
关于网站域名变更的通知
查看: 278|回复: 1
打印 上一主题 下一主题

在Linux中C/C++的一些常用头文件的作用

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-7-31 10:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
# E% I- {* L( p% }# e& p
: {$ F* s7 P- w, C
<assert.h>:ANSI C。提供断言,assert(表达式)
: o9 M" K7 g+ J, L% ]# |<glib.h>:GCC。GTK,GNOME的基础库,提供很多有用的函数,如有数据结构操作函数。使用glib只需要包含<glib.h>
, Q- H& d  X8 h<dirent.h>:GCC。文件夹操作函数。struct dirent,struct DIR,opendir(),closedir(),readdir(),readdir64()等+ C; X  J+ N0 h7 [
<ctype.h>:ANSI C。字符测试函数。isdigit(),islower()等3 i  o% P6 o. U3 s5 H
<errno.h>:ANSI C。查看错误代码errno是调试程序的一个重要方法。当linuc C api函数发生异常时,一般会将errno变量(需include errno.h)赋一个整数值,不同的值表示不同的含义,可以通过查看该值推测出错的原因。在实际编程中用这一招解决了不少原本看来莫名其妙的问题。比较 麻烦的是每次都要去linux源代码里面查找错误代码的含义,现在把它贴出来,以后需要查时就来这里看了。来自linux 2.4.20-18的内核代码中的/usr/include/asm/errno.h
5 x+ C2 b; S, X5 P5 G8 @8 R: n<getopt.h>:处理命令行参数。getopt()+ ~6 D6 J7 x) E! `0 e

0 W1 _6 v2 }2 f+ ?1 r-------------------------
" C) C7 n0 ]! X0 \) L1 I$ M" {$ g# J7 s: S4 H8 H( D
: G! A. D! e3 o0 Y. V9 ^2 S, h
linux常用头文件如下:
  g  m3 u" q4 P6 \* O( O  T) I* n5 M: `; f5 ~
* Y3 a7 u7 R, m8 C: M3 H: Z2 A
POSIX标准定义的头文件4 S+ g" G* M4 o9 _( Z& L2 O; ~
+ P$ \! _9 \2 j8 A+ Q9 |
! |; {) e( x' o5 A) Y9 W
<dirent.h>        目录项
8 E* D$ H/ A  F8 s3 b3 r$ c<fcntl.h>         文件控制
$ p* W. b8 S5 S! J- {0 E' K<fnmatch.h>    文件名匹配类型2 V6 ~3 |$ k7 u. P5 k
<glob.h>    路径名模式匹配类型
# \6 @/ ]: W, m7 @& z: b+ b<grp.h>        组文件
# ?4 H$ O. B' L1 q' y: X6 q<netdb.h>    网络数据库操作- ]# K, @* @% A4 K( s* T/ a
<pwd.h>        口令文件. p- c5 M# J2 s5 F
<regex.h>    正则表达式
( j+ G9 t2 d5 A  p+ A2 q+ s; {( r<tar.h>        TAR归档值* m$ h# g' [/ o! L- N
<termios.h>    终端I/O( d; l3 s, z" |1 ^0 i; C2 ?
<unistd.h>    符号常量
1 s8 D- f' d3 Z6 \% C3 h<utime.h>    文件时间
. v4 c3 F+ y( G% b( d4 d<wordexp.h>    字符扩展类型/ C5 k$ h- Q8 {4 l+ Q. z& ]

/ y, M- E& c; D- w. |: X1 t

1 D' N) G" ]; m-------------------------
0 N& I" B! r; W" m, x! M: E: z8 ^! f/ G
9 b: \8 c- o- i/ R* x5 Q! I7 Q$ [
<arpa/inet.h>    INTERNET定义1 t+ [6 D6 m0 s- @5 A1 h/ T" m7 Y
<net/if.h>    套接字本地接口% v3 Y' }. j5 U8 Y. l. A
<netinet/in.h>    INTERNET地址族7 G" s0 h5 Y9 W& K
<netinet/tcp.h>    传输控制协议定义6 h& k( {$ _+ A# d( q# G
5 P' r6 K' n0 F- d6 j
0 Q& o* ~% u' u2 j6 n/ a! R, y
-------------------------
" U) j4 M% v2 }. |; q
# l  e) S' i; M9 c

, |. l$ l/ S! L7 G/ V<sys/mman.h>    内存管理声明! @7 M2 ?. M1 V
<sys/select.h>    Select函数4 ^8 N, T; I# r, \/ R$ {# C9 V
<sys/socket.h>    套接字借口- I9 E9 [8 r3 ]7 o1 R$ k- H5 o- u0 l
<sys/stat.h>    文件状态4 x, s/ z  {: [/ i% X
<sys/times.h>    进程时间, h0 |# v+ M- W4 Q
<sys/types.h>    基本系统数据类型7 Z) |) {" W8 P$ b4 W3 P8 w1 U  R
<sys/un.h>    UNIX域套接字定义
4 X4 `, G. ]& _+ R: t! G3 C<sys/utsname.h>    系统名
4 ?5 r7 ?2 g, F% ?4 e<sys/wait.h>    进程控制
0 R3 G+ e% C4 J; F" w2 X
# M7 i6 \( a. E3 h* X

- X9 K; V6 }% c7 ^$ [, i------------------------------
. S! m% r2 I2 j( F% r" N
* k7 O0 G2 F( J) n* i0 _7 n
# F9 K  \1 P6 r3 ?
POSIX定义的XSI扩展头文件
- W" X+ D0 i2 I
( S2 E$ y5 d, Z7 i4 {# L

8 I3 N+ n) W9 G" D<cpio.h>    cpio归档值
( H+ q) F5 m8 }5 A% X# y' o<dlfcn.h>    动态链接5 K+ c( l% _9 e1 f- m
<fmtmsg.h>    消息显示结构
. _% {# p8 q& s( y5 H<ftw.h>        文件树漫游
4 n2 Y9 _6 I/ A, p<iconv.h>    代码集转换使用程序
! b  e6 e. E; x2 B. h# ]# T<langinfo.h>    语言信息常量; F$ b. S. T7 N  `
<libgen.h>    模式匹配函数定义, S! T6 f5 t& n
<monetary.h>    货币类型
& [: ]  X+ L2 u! J1 F' u( t<ndbm.h>    数据库操作
( W5 N9 h& Q9 Q+ x( \/ s<nl_types.h>    消息类别* l: G# s. {6 ?
<poll.h>    轮询函数5 J) X' `/ R- I$ g* B+ T$ d% {
<search.h>    搜索表' S8 ]  ^! D& G" S, w- T, Y
<strings.h>    字符串操作9 ~) g) T$ ^+ E8 k8 j% s. Z( s
<syslog.h>    系统出错日志记录+ a  y; c, E, L0 c. f
<ucontext.h>    用户上下文! s/ j6 Y% |# b$ \( T& b  Z
<ulimit.h>    用户限制6 o7 g( s9 D" @" f8 M
<utmpx.h>    用户帐户数据库 - t  g  ]4 m) J4 b; l0 k
+ x  H  Z3 H) ^1 E; l& T# n7 t! b

0 W0 R4 u# M* W5 \0 t9 p-----------------------------# C8 K& P* n3 [5 K
2 b3 s6 A. S7 t3 p  [& I& e# ]

" A& ~) _" b4 K: B4 ^8 x<sys/ipc.h>    IPC(命名管道)
9 ?9 t% T- R1 Y' X, V% X' C+ Q<sys/msg.h>    消息队列, I; M3 N) f, e2 k- G, F1 s; O! u
<sys/resource.h>资源操作# M0 P7 j/ \9 f
<sys/sem.h>    信号量
! A' v$ O# n6 n- }- \<sys/shm.h>    共享存储( B' M: X" N9 H8 C/ h/ \+ A& M0 k
<sys/statvfs.h>    文件系统信息
) u0 a$ r8 V, i. r- k0 [6 t<sys/time.h>    时间类型
1 x# k* x, n4 D1 D- v$ e<sys/timeb.h>    附加的日期和时间定义7 q6 {* j. q3 j& Q* m# x
<sys/uio.h>    矢量I/O操作9 f+ _( Y, D4 O4 [1 W8 \) [' T

; S: t$ o# p; S! q2 F
8 `* x# r2 n# D0 h" Q: f
------------------------------
3 o0 t' ]) k3 c1 l" z6 W8 N- {! ~  _& _( q$ Z% Y
/ w0 x6 s2 r% w4 A9 f' [& e
POSIX定义的可选头文件! e5 {! n, F" c

  }; m& G7 b! g7 ]; q2 {: o

# I5 F! F6 j4 t<aio.h>        异步I/O
5 f9 M. i4 g7 P) l8 N5 k<mqueue.h>    消息队列0 o) [9 c' {: I' i" N8 P" Z* F' t
<pthread.h>    线程
9 Z. i+ c7 D0 \2 L  m: n0 x<sched.h>    执行调度
# d- F$ g+ s+ G: z8 w/ m+ ]0 K6 B<semaphore.h>    信号量' w! |6 S' C5 W2 ?% Y
<spawn.h>     实时spawn接口
  P, M: ?& ~4 [+ A<stropts.h>    XSI STREAMS接口+ Q5 t; j- U7 D: Q% V7 W" p3 |$ H8 D
<trace.h>     事件跟踪3 L- N2 `- P, D4 z

! H- \' K  u8 Q8 v9 n1 |- b

( B) g( s5 E" N/ O/ \- ?5 ^3、 C/C++头文件一览; G# ?; a3 V: b1 c

3 [/ z  s# j3 M0 z  r5 I; F
! j/ _7 ^# c' f
C
3 y) P# f+ A2 o& I# @0 O
2 [  ?; G1 r% E) T9 N

: F9 X. Q% I' z+ S5 |3 B* i#include <assert.h>    //设定插入点' e, @" r" S9 t" s" K' Q2 ?
#include <ctype.h>     //字符处理; I+ i7 ?( Q* m* f$ }
#include <errno.h>     //定义错误码( O6 j# c" K. H1 _6 f' k9 ?. K
#include <float.h>     //浮点数处理: F' ]+ ?8 f6 m" c% ^
#include <iso646.h>        //对应各种运算符的宏
2 p3 o) c$ J# G4 T#include <limits.h>    //定义各种数据类型最值的常量2 G& U7 ~3 V8 i6 u
#include <locale.h>    //定义本地化C函数
! D% Z6 x) Z; m) @; C+ S#include <math.h>     //定义数学函数
$ ^; ]6 p! H8 X9 t#include <setjmp.h>        //异常处理支持
, j$ t1 `3 s3 u$ {* x) y* M#include <signal.h>        //信号机制支持  S/ }/ q: v8 F1 j
#include <stdarg.h>        //不定参数列表支持
$ J/ L5 n' F$ |1 f- r' n! }' U5 r2 T#include <stddef.h>        //常用常量
8 D* A( z% S8 o# r1 g  I#include <stdio.h>     //定义输入/输出函数& s# g- J+ x& w' }
#include <stdlib.h>    //定义杂项函数及内存分配函数
; u7 W- }- K6 U! ?#include <string.h>    //字符串处理. r* M: A! \; x2 e" x
#include <time.h>     //定义关于时间的函数
$ @/ t  B1 W" T" D" H#include <wchar.h>     //宽字符处理及输入/输出
4 O) {0 ], o9 {. D% U  L#include <wctype.h>    //宽字符分类. y, m  u0 B0 k, k4 S
, a' S/ {: V6 W/ p  t# A

. c  ^0 m+ i% G9 C1 G传统C++( _5 g; L- m/ P2 O

9 n% A+ {( @% I  X4 W
( B2 A. E0 I' `7 j8 y* v
#include <fstream.h>    //改用<fstream>7 z1 [' e* s  w8 O5 `5 Y5 x
#include <iomanip.h>    //改用<iomainip>
1 ~3 `* ~8 z6 I" \/ g% U#include <iostream.h>   //改用<iostream>3 W8 l- X9 H# }; R; e' B$ O
#include <strstrea.h>   //该类不再支持,改用<sstream>中的stringstream' _" h- b# Z' s5 J1 G

4 X4 |5 S4 X5 t; w! H: x
& q' T$ d( }$ `- B
————————————————————————————————5 b8 x; v6 ]6 ]7 i: u
/ t* t$ ~( k, P
" `, q+ V3 x& t  v6 M
标准C++ 
* Q! f1 o2 t' M$ L! ~, S- ]0 n) s9 E1 w4 h
- D# b7 y1 j: Y( ^) {% N
#include <algorithm>    //STL 通用算法$ h9 m6 v! u1 u$ G' u7 M7 t9 ^
#include <bitset>     //STL 位集容器
% ]0 L: K) S9 x9 g/ w" v! `9 B#include <cctype>          //字符处理  \! D2 q/ Z/ P* d
#include <cerrno>      //定义错误码: N+ @& B7 i1 b4 E) ~; X
#include <cfloat>     //浮点数处理1 E: X2 O. Y6 ^) a& D- h
#include <ciso646>         //对应各种运算符的宏3 v3 R" |; T8 g! c: y+ d/ n8 M
#include <climits>     //定义各种数据类型最值的常量
- ?$ E/ P8 C; h3 E# `' `#include <clocale>     //定义本地化函数8 D- `; I9 G7 [( v6 R! c
#include <cmath>      //定义数学函数% }" |, i3 c4 X
#include <complex>     //复数类
, q$ ^& j7 G# ~* Z9 J#include <csignal>         //信号机制支持4 P# i9 m- v- f
#include <csetjmp>         //异常处理支持! z: ]% l! B7 w+ x2 q$ f; w8 h
#include <cstdarg>         //不定参数列表支持
7 d8 |5 u7 N8 y, Y1 t#include <cstddef>         //常用常量
/ u+ a0 m- w/ i7 g+ k5 P: y#include <cstdio>      //定义输入/输出函数7 I( k" W1 k- t# Q  A
#include <cstdlib>     //定义杂项函数及内存分配函数
8 z# [% L2 `6 `( a3 Y' E#include <cstring>     //字符串处理- J( y2 C  i) p% f: e4 F6 V
#include <ctime>      //定义关于时间的函数3 L! G3 a* F% e  ~% \
#include <cwchar>      //宽字符处理及输入/输出
# n7 ^" g/ G0 |" `; O#include <cwctype>     //宽字符分类
6 T2 V8 T: R. X9 D# K5 l#include <deque>      //STL 双端队列容器
4 E7 {3 n2 l  [! T#include <exception>    //异常处理类" J# P* C, N8 N  D
#include <fstream>     //文件输入/输出
6 e4 t2 n9 K' g) j3 e#include <functional>   //STL 定义运算函数(代替运算符)
/ u% H8 N. s8 c2 V#include <limits>      //定义各种数据类型最值常量" t( I  M7 H, Y# C, \3 M, u' d
#include <list>      //STL 线性列表容器
" j/ u! N4 C3 e& Q! ~#include <locale>          //本地化特定信息/ X! J; S' q+ `( |, A, y
#include <map>       //STL 映射容器
) T  l3 u: ?% {" F#include <memory>          //STL通过分配器进行的内存分配
4 _0 Z5 S5 Z& x" d# u#include <new>             //动态内存分配
9 h* C( F2 N7 }#include <numeric>         //STL常用的数字操作& u, s0 G6 i1 s7 }' y8 u1 x; C7 }) n
#include <iomanip>     //参数化输入/输出- D3 c4 ~: q, \
#include <ios>       //基本输入/输出支持
5 r' p3 Q! v2 g% b( \  G( h7 c#include <iosfwd>     //输入/输出系统使用的前置声明
$ e6 q$ r7 q; x, f( G#include <iostream>     //数据流输入/输出
5 m8 x- F2 h7 @* F0 [#include <istream>     //基本输入流4 q+ _+ L6 i8 A
#include <iterator>        //STL迭代器
" M9 Z& D$ M" s#include <ostream>     //基本输出流
$ y  H3 g# H) ^5 O2 {#include <queue>      //STL 队列容器
  B. @- ^9 `- X1 f2 h2 @! p#include <set>       //STL 集合容器
2 W0 ~$ `' @( T7 M5 \( _2 h; s#include <sstream>     //基于字符串的流
/ R2 k8 o$ h  J8 ^) p1 `" `#include <stack>      //STL 堆栈容器2 _0 Q* G( I9 g6 M% C2 p
#include <stdexcept>    //标准异常类
% y" u# y& H( Y) l9 q% v( Q, u. A1 T#include <streambuf>    //底层输入/输出支持. Z$ q: s! _, F, ?* F. L( L
#include <string>     //字符串类+ s3 t" R" O3 c, t. j$ w
#include <typeinfo>        //运行期间类型信息$ M7 L2 \! h( `7 H
#include <utility>     //STL 通用模板类
) S+ B# U5 ^9 C- W( H#include <valarray>        //对包含值的数组的操作
! \7 R- A2 e- t/ d8 o  E7 D#include <vector>     //STL 动态数组容器9 X: `+ G$ ]1 ^( v+ t" v0 {2 j

& U) O  m( i0 U$ s/ U* i9 K% X

8 g1 {. g$ k$ x! ^3 f! j) S& r2 A" ]( Q: f- W1 b+ \

: M( N. s* Z$ N! \% x( t- k* ?9 v; y4 j
  @! f0 P; G5 y) d

4 f; `# |2 R8 x6 B  V
& w* v0 `3 d! m, s+ y8 o5 Y, k/ L* a$ V% E" z  U/ Z/ D

该用户从未签到

2#
发表于 2019-7-31 18:18 | 只看该作者
看看在Linux中C/C++的一些常用头文件的作用
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-24 20:54 , Processed in 0.156250 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表