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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
5 N$ p9 M& j* n2 z

/ ]; I& [# q8 k. V1 r8 \<assert.h>:ANSI C。提供断言,assert(表达式)4 t) H/ Z4 z, z9 ]
<glib.h>:GCC。GTK,GNOME的基础库,提供很多有用的函数,如有数据结构操作函数。使用glib只需要包含<glib.h>
9 f; k6 M9 j1 p3 \. f7 Z, q<dirent.h>:GCC。文件夹操作函数。struct dirent,struct DIR,opendir(),closedir(),readdir(),readdir64()等) {+ C- y( ~6 Z1 E
<ctype.h>:ANSI C。字符测试函数。isdigit(),islower()等# p1 C9 w: l" k& _/ h
<errno.h>:ANSI C。查看错误代码errno是调试程序的一个重要方法。当linuc C api函数发生异常时,一般会将errno变量(需include errno.h)赋一个整数值,不同的值表示不同的含义,可以通过查看该值推测出错的原因。在实际编程中用这一招解决了不少原本看来莫名其妙的问题。比较 麻烦的是每次都要去linux源代码里面查找错误代码的含义,现在把它贴出来,以后需要查时就来这里看了。来自linux 2.4.20-18的内核代码中的/usr/include/asm/errno.h
- k0 b$ l. P+ d1 y9 W. J9 O# I<getopt.h>:处理命令行参数。getopt()
, o7 A5 i; z7 U7 }+ p) O % H7 p) e5 z% Q2 [# X0 |4 j
-------------------------
  \7 S8 W- C" y& E$ s; s
; B$ B8 ^/ ?0 N* l

+ W- R( \$ \% plinux常用头文件如下:
* V( E, \% H$ g: c
0 n; P, J2 Y7 R# q% C9 u" Q4 s! ]
% H- Q5 ~0 ~' B
POSIX标准定义的头文件
  E7 ^5 G! f9 L9 w. n% a
- C! o) Y$ J, G7 q! @: ?
4 N5 }/ N- D& q9 s/ C% D- ~; M
<dirent.h>        目录项6 b' b  k' a* ^. o  T) ?" L8 F$ k4 y/ G
<fcntl.h>         文件控制
/ L8 k2 b6 w& e' D<fnmatch.h>    文件名匹配类型
8 `0 F( t$ ^- P- O. |, k<glob.h>    路径名模式匹配类型- `# b  _: T9 W" {; p/ @
<grp.h>        组文件0 t. X' o' o/ D* x2 J+ }" y
<netdb.h>    网络数据库操作% J; c: R9 U: ?9 u
<pwd.h>        口令文件+ p$ H9 m. M* M5 R7 p) y
<regex.h>    正则表达式: f2 _, _2 a% b! C: U
<tar.h>        TAR归档值
: L) ?6 f) c. B2 F2 ]7 u4 U<termios.h>    终端I/O) f& ?+ V/ ?' F3 M& r, |
<unistd.h>    符号常量' o4 V$ k) P% ~7 P! ~- u' [( e
<utime.h>    文件时间
. m( U6 H4 c" l/ \" Q, b1 e<wordexp.h>    字符扩展类型
- n& J0 L" k9 H+ O7 p4 d+ j0 R4 B5 I# t8 S  Q# V8 W0 n

: p5 k. q2 j" f2 M, D-------------------------
, ~6 \' w: V4 g! I
; [$ h# v2 F# I# c
% V9 K# A( E  x; d3 t" M
<arpa/inet.h>    INTERNET定义3 l1 C% F& @9 A, Q9 a2 E( F- \
<net/if.h>    套接字本地接口
' O! ?$ V& b* ^7 s<netinet/in.h>    INTERNET地址族
6 M# L4 s5 X/ J7 O7 I' {<netinet/tcp.h>    传输控制协议定义
% @- o; H0 ^& j+ c" g! T* m& q! d! _
2 m9 A6 ]& M# Z) y8 S

' p+ f) z! N* c; n* s8 A-------------------------
, \. ]# P% M' [* y
% F# \7 o& P( V: c

+ J% v# M7 X' E, M2 y- E8 O. @<sys/mman.h>    内存管理声明
* N. U- e. [7 B* ], S, o: ~. \2 H<sys/select.h>    Select函数
+ A3 `  Y! F: m9 h<sys/socket.h>    套接字借口
3 b# ?, V" s+ x, L! p, t<sys/stat.h>    文件状态' f, }& s( X# g; o
<sys/times.h>    进程时间
# V, {& m9 I6 \8 e7 D<sys/types.h>    基本系统数据类型
, @( B0 Z2 G! l- F+ K! i<sys/un.h>    UNIX域套接字定义
) n$ W; m% I* n4 D- f$ H' S8 P<sys/utsname.h>    系统名
' Z  M. s* J9 e. B! n6 y8 I" s<sys/wait.h>    进程控制
9 w& q: x' E1 J* f: f6 ]" W) q; J3 I6 }' ?# \/ P& s: h

  n$ t1 t* v* e0 a  l! ?1 F: E------------------------------5 @/ q$ r7 p# A3 Z* j
5 u9 P$ @2 c6 T5 o

. @  P1 t6 a0 ~, G. B/ y9 ?0 dPOSIX定义的XSI扩展头文件
4 v8 W  d: f8 B+ c0 S8 [6 ]1 j# K3 X
- Y" Q2 _4 h: X: N1 l4 W* i
<cpio.h>    cpio归档值 9 E3 U; K6 u3 S( m6 o
<dlfcn.h>    动态链接- P: U0 q# s* T* X( u" a
<fmtmsg.h>    消息显示结构
  `9 f8 S: e/ ?; }<ftw.h>        文件树漫游
8 y7 K: q, @- x! z& z2 ?! \! l<iconv.h>    代码集转换使用程序
) Q' U% q# \7 [7 t4 C+ ~<langinfo.h>    语言信息常量4 O% y; u+ M4 f7 M8 e
<libgen.h>    模式匹配函数定义* b6 X% K% P0 u, Z- I& G0 q
<monetary.h>    货币类型
4 U. H5 Z& a% s) X; S" ^3 I<ndbm.h>    数据库操作/ _% Z% }) |& d/ F3 I* Q8 C
<nl_types.h>    消息类别
3 c& A1 c& ~0 N5 R5 }<poll.h>    轮询函数! s6 T: x, d' F* I/ |
<search.h>    搜索表
# m9 R7 r8 m7 U$ J% D" `<strings.h>    字符串操作2 W5 U& e; T) l6 V0 i1 c
<syslog.h>    系统出错日志记录( R- F0 N% R; x9 {! V
<ucontext.h>    用户上下文* H8 ?' c: g9 `
<ulimit.h>    用户限制: y- }; b/ s6 K" ~
<utmpx.h>    用户帐户数据库
- g0 V/ _2 @6 U  q/ h4 V$ r6 F' v' Z% j; q" m# w, t& [
6 }* k5 {( h2 L+ s9 I3 G
-----------------------------9 }! f4 B- M6 E* W
' N) u" y9 \/ L- j

0 E8 ~) X7 B0 o) A<sys/ipc.h>    IPC(命名管道)
9 {! r( C2 V+ h. v$ v* @<sys/msg.h>    消息队列
+ J: K8 l, }6 T: x, ~! J<sys/resource.h>资源操作# O& c' z) r2 N8 A6 G6 I. l2 x
<sys/sem.h>    信号量( X7 q6 }, f. I( \7 _% H
<sys/shm.h>    共享存储
- t1 w) D4 w7 C  m) u<sys/statvfs.h>    文件系统信息
3 `8 p7 A3 q$ K# Z<sys/time.h>    时间类型
& z; j. u# f/ F<sys/timeb.h>    附加的日期和时间定义
. Q7 X" H7 O" ~. Y( E<sys/uio.h>    矢量I/O操作6 o2 b. C" C6 `8 S/ |4 d7 ^, k
# ?. i$ z* J9 \* }

! F4 g. C: Z% q; r' ^! N# i: V6 z, S! \------------------------------  |5 l! ?  M! H5 {/ ]. x. @

) j0 i7 m- g0 W1 E8 W( r% m& K
# R. q5 _+ S( }
POSIX定义的可选头文件
5 r. h$ U" o- ^% q4 r. l, E+ f2 U" s  q3 x# \9 l. ^# A

0 d/ v$ C# L2 n2 G6 U3 |" {! f<aio.h>        异步I/O$ R8 l! Z. [: _/ ~3 k
<mqueue.h>    消息队列+ D* o, t" y8 z) L% V2 h2 _/ d
<pthread.h>    线程
1 O  b$ X  B% c" g$ I- s<sched.h>    执行调度" `' ?6 U# R  [9 X2 L9 z) i6 z# ^
<semaphore.h>    信号量
! C4 u6 N7 Y. P7 p- E<spawn.h>     实时spawn接口
: ^; ?! Y2 @! @  J/ U# H<stropts.h>    XSI STREAMS接口
; o0 }3 Y$ \7 R" \) ?1 y<trace.h>     事件跟踪; _/ I( e7 b9 ^' }+ v' B

; u3 T6 b, r+ G! h  ]/ U2 H
: S3 V" i2 A8 ?  K6 J& a( N
3、 C/C++头文件一览) o& U1 V0 _' [4 T+ E

: G* d) j. e# I; f" y' V

# y8 f, i/ ]4 P( K; q% q9 h; `5 JC' \# ?; q" Q. k) H
/ C% R  F7 R7 G1 ?
; l2 R- s5 F, q+ H) @7 `# x
#include <assert.h>    //设定插入点' @7 d3 O$ }( _; i' Q
#include <ctype.h>     //字符处理
% O1 y9 W6 \$ D$ Y#include <errno.h>     //定义错误码
6 b% o+ w0 c5 Z3 u9 |+ V$ @#include <float.h>     //浮点数处理4 c7 P: Y; j! H
#include <iso646.h>        //对应各种运算符的宏  P, P6 Z( w- {" h5 P
#include <limits.h>    //定义各种数据类型最值的常量
' _: L& @7 G$ O6 r/ p#include <locale.h>    //定义本地化C函数4 o; ?, W+ w3 s/ k9 R+ X
#include <math.h>     //定义数学函数
7 z# u' Y& L# a# r#include <setjmp.h>        //异常处理支持
9 _9 X& C/ D2 c#include <signal.h>        //信号机制支持
/ _; N* i# @; I" k/ W* Q#include <stdarg.h>        //不定参数列表支持
! P# k" O! U* ^+ l# a#include <stddef.h>        //常用常量
  M8 ?% x+ U2 _2 i' X% W& ~- T#include <stdio.h>     //定义输入/输出函数
# ?" a& n% h$ o#include <stdlib.h>    //定义杂项函数及内存分配函数( C& ~; c& y1 t; R( f% T% G
#include <string.h>    //字符串处理
+ z1 ?0 W$ L# p" v#include <time.h>     //定义关于时间的函数
8 v" O( C: u8 V& f. U#include <wchar.h>     //宽字符处理及输入/输出& j# J: C; M0 r4 M( v) T
#include <wctype.h>    //宽字符分类1 _9 s# H3 E9 O  B
. \9 E  p2 |* P, A- d1 J: r: p
& y+ [7 [, R4 ?8 J9 j8 A
传统C++1 {: f0 u% Z* }9 d( y' r1 J

8 b4 k% t" w3 p) z* R1 b6 I

5 T8 q; J! C& |, P# @#include <fstream.h>    //改用<fstream>) a) d+ V, o/ K5 v' `6 w. `1 g
#include <iomanip.h>    //改用<iomainip>
% v% m- {) s( }- M1 Q: V0 E2 T#include <iostream.h>   //改用<iostream>
7 L; B2 P2 Z3 j2 ^#include <strstrea.h>   //该类不再支持,改用<sstream>中的stringstream
& s8 m$ H1 Q7 x9 \- |  U/ B) T" c7 j
9 P4 V: T0 F5 E0 ]. r, S

4 f7 |8 F- e8 Y/ ?————————————————————————————————/ S. i8 }8 {) }/ r

' }; V. ], Y4 b; v# q4 l( t

9 a7 h9 U" r% ^$ P标准C++ 7 \8 h" M* ]- R' p* B2 t' T6 {' k4 n
  `& B% O7 \4 U2 m" Y7 Y
+ t9 G* F8 Y( F& I- Y- w
#include <algorithm>    //STL 通用算法  A8 L, p: k) b1 f6 ]
#include <bitset>     //STL 位集容器( p3 d5 e$ f7 }6 x. ~1 A
#include <cctype>          //字符处理
) D/ q2 Q: h9 R$ l) ~#include <cerrno>      //定义错误码1 ?" o3 h- a% E) S1 G
#include <cfloat>     //浮点数处理$ g; S3 f4 D5 o" a  }- I) \
#include <ciso646>         //对应各种运算符的宏
) f9 C" H+ m  H. i, \  X  C4 h#include <climits>     //定义各种数据类型最值的常量
1 Q( p. p& b. i. N& v. ?+ N3 s#include <clocale>     //定义本地化函数, i1 G) k* U1 \& |
#include <cmath>      //定义数学函数
: e: A" H0 Y% o#include <complex>     //复数类: K5 u4 y: Y, F4 O
#include <csignal>         //信号机制支持- X  }# D1 g2 Y. g
#include <csetjmp>         //异常处理支持
0 T2 j7 I" ~/ j0 m0 c6 r#include <cstdarg>         //不定参数列表支持, r! y7 P3 l$ `+ c" `+ S( J
#include <cstddef>         //常用常量
  m! S* C7 S7 _& j1 [#include <cstdio>      //定义输入/输出函数+ Y. H" U! Q' x. G7 I
#include <cstdlib>     //定义杂项函数及内存分配函数
9 [- i+ J1 g3 H4 y" B$ ]" y#include <cstring>     //字符串处理
/ j8 t9 f& A7 d2 w8 E- ?" f#include <ctime>      //定义关于时间的函数; Z+ q+ M" ?5 S; m( g
#include <cwchar>      //宽字符处理及输入/输出
# s% d3 b3 o: S8 K( k; _; d#include <cwctype>     //宽字符分类
1 p0 T/ m1 K, _, E#include <deque>      //STL 双端队列容器
: O; w0 L$ [7 d#include <exception>    //异常处理类2 y' \1 B- ~, b3 g9 F6 b
#include <fstream>     //文件输入/输出
, M) h5 W( \0 e+ E- B# k( N, c#include <functional>   //STL 定义运算函数(代替运算符)3 q; u- w- _9 u  x5 H
#include <limits>      //定义各种数据类型最值常量9 p5 K9 J2 ?1 ~
#include <list>      //STL 线性列表容器; ?4 ~4 ^4 f1 J; f4 h: Y
#include <locale>          //本地化特定信息  f1 O0 O6 [* g7 j
#include <map>       //STL 映射容器
) Q8 F* T# l# v" ]. n3 C#include <memory>          //STL通过分配器进行的内存分配
; B# a& l+ _. n2 ]#include <new>             //动态内存分配
$ w. Y) q7 F) R5 {+ f#include <numeric>         //STL常用的数字操作
# V' ?8 S) e. q, M, J#include <iomanip>     //参数化输入/输出
/ @1 @+ t& L0 v. K1 o! p#include <ios>       //基本输入/输出支持+ ?  Z) W- U9 n
#include <iosfwd>     //输入/输出系统使用的前置声明
! N. f) q9 t! o3 p9 |/ O% y! J; B#include <iostream>     //数据流输入/输出6 `  @) N4 }% F+ Q2 ?
#include <istream>     //基本输入流
  b# E8 q9 x( g* ^6 f#include <iterator>        //STL迭代器
9 h0 k' h* J  Y; a#include <ostream>     //基本输出流6 o5 p% Y" f7 Q3 }! T% A% B
#include <queue>      //STL 队列容器
/ [9 d8 h' n, M$ _#include <set>       //STL 集合容器
* u; |7 `" }3 A' U- a7 z#include <sstream>     //基于字符串的流
# p, e! t& q1 x; R#include <stack>      //STL 堆栈容器5 ~9 ?  z5 T9 F, B) a
#include <stdexcept>    //标准异常类
& ?$ s" g/ ?8 k; V: ?#include <streambuf>    //底层输入/输出支持3 u& `9 f  a. h3 p
#include <string>     //字符串类
9 y7 k% c2 R5 X- F% R; ~3 P7 Q6 c; n#include <typeinfo>        //运行期间类型信息
; p1 |5 J) Z9 G: X#include <utility>     //STL 通用模板类
( y6 i$ {% o  p( K, \1 J* O, n) J# D#include <valarray>        //对包含值的数组的操作
8 Q. Y# ^, J4 ]4 z. C$ u0 E#include <vector>     //STL 动态数组容器8 u& q; [# r9 j! h+ p* }& y, P

6 u1 A$ J  Y  |& Q
0 m. f% T- Z8 ~& A
; j' I: l9 g6 _3 O1 l

# c/ m7 X" L* _) j- R% _( L2 T- m
: q+ `8 V' s. j( Z. @6 O. @
+ \! K7 z$ x7 @

" m& V  n7 c5 q# {' M* j0 H$ [! u4 i% H- o+ l! f6 R* q; X

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

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

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

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

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