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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

3 b+ q7 `5 u' u* {6 j- y+ f+ Q

0 D  m- }9 Q7 [8 _0 Q; J% p- Q<assert.h>:ANSI C。提供断言,assert(表达式)
( S3 @' P; j! J<glib.h>:GCC。GTK,GNOME的基础库,提供很多有用的函数,如有数据结构操作函数。使用glib只需要包含<glib.h>& x5 y. N( g6 b+ |) _+ Q
<dirent.h>:GCC。文件夹操作函数。struct dirent,struct DIR,opendir(),closedir(),readdir(),readdir64()等
$ f% T- l/ u, r0 p: `7 s4 b) D<ctype.h>:ANSI C。字符测试函数。isdigit(),islower()等- B) R0 m6 `6 ~* L
<errno.h>:ANSI C。查看错误代码errno是调试程序的一个重要方法。当linuc C api函数发生异常时,一般会将errno变量(需include errno.h)赋一个整数值,不同的值表示不同的含义,可以通过查看该值推测出错的原因。在实际编程中用这一招解决了不少原本看来莫名其妙的问题。比较 麻烦的是每次都要去linux源代码里面查找错误代码的含义,现在把它贴出来,以后需要查时就来这里看了。来自linux 2.4.20-18的内核代码中的/usr/include/asm/errno.h
) F. e  C9 C. [; g2 `$ I- L<getopt.h>:处理命令行参数。getopt()3 L) M' `0 z' T

( c: u; u6 f9 o+ i) U8 S! L-------------------------
7 z) y9 f! J' C5 n4 L! b
7 g) x; d& T( t6 R6 d9 z- w5 r

& C6 q7 Z/ C5 }& M) H. B/ Plinux常用头文件如下:( i3 d3 J& L& u; Q

! e8 A$ k; Q# B

$ W/ L/ U3 z. s5 \0 aPOSIX标准定义的头文件
4 J; w3 a/ p4 M* M: K3 r1 e$ E( Q8 S% F8 `' P0 o, T. V; o

4 \* }+ \  C8 I, q<dirent.h>        目录项
1 L" T) }. n1 e" b<fcntl.h>         文件控制7 B6 L) J5 l. r% h+ g
<fnmatch.h>    文件名匹配类型
! m7 T" a- Y; I& I/ H* [: r5 y# G<glob.h>    路径名模式匹配类型
. q/ h7 ^. L3 S" R<grp.h>        组文件
& G$ ~8 r% E% y- G2 Q, E<netdb.h>    网络数据库操作  f* D* X4 X" R% X9 w1 O
<pwd.h>        口令文件
, o: V) g! _. p5 b) A$ C( d- H3 H$ k<regex.h>    正则表达式
* N' L8 S% h2 @/ m4 e; Q<tar.h>        TAR归档值1 K" _8 n7 A' B
<termios.h>    终端I/O7 d4 E  B  E4 Q$ l. F6 v0 V
<unistd.h>    符号常量; K3 ]$ T# y! \1 ?/ ?8 u
<utime.h>    文件时间
' N2 N! o% [, a; y1 p8 G<wordexp.h>    字符扩展类型5 O7 A9 D( X1 g$ p6 |' t

2 r( J! Q5 ?; q
. @/ {! P) v1 A
-------------------------$ }) \/ O6 T6 I2 h: Y7 r. O7 k0 i& ^

1 x; q. h4 a, U
4 }3 j* r8 c# C: U8 e& d6 _
<arpa/inet.h>    INTERNET定义  J& y/ u6 ^* d& x
<net/if.h>    套接字本地接口
+ O/ e) ?* @$ n' J8 N<netinet/in.h>    INTERNET地址族
6 G( p& d$ n2 a. |8 n& c0 [<netinet/tcp.h>    传输控制协议定义
3 t4 S# }0 u: [4 o1 O  _/ h- Y; `7 M+ a
3 f! v& p* |% f
------------------------- / f) O1 q: I. G4 `8 f

7 r5 e. s" g7 Q- A- i

4 s! `& O$ r+ D<sys/mman.h>    内存管理声明
+ d1 j* F! `0 }+ E: s8 c/ @( f<sys/select.h>    Select函数
3 d2 q# [9 @2 X3 C* R8 |& l1 a<sys/socket.h>    套接字借口2 k- \( S- M3 u/ F
<sys/stat.h>    文件状态
% A( x8 ?! E7 v* W<sys/times.h>    进程时间
" B; K4 r; _6 s0 w% e% O/ q% g<sys/types.h>    基本系统数据类型
5 \9 \% M/ J8 F3 e<sys/un.h>    UNIX域套接字定义" S) v5 [# l7 t& {! I+ I+ `
<sys/utsname.h>    系统名0 P, Q+ W8 B( P9 Z* P; S" V
<sys/wait.h>    进程控制
' n+ A( i2 ~9 N# h, W# I2 Y  L; @5 ]& O
6 w+ j( S! G" G! W% j
------------------------------
1 X, P3 I- }  H& T8 A- c
$ ^. b; G. Q% b# Z

4 N1 s9 l$ A& B, N  \2 V9 D6 BPOSIX定义的XSI扩展头文件
. x8 v# W! W, Q6 v4 l5 P
) ^! S. ]( M5 R
0 H8 f, V% X& _
<cpio.h>    cpio归档值
1 ?: f: e% x  A( M2 l<dlfcn.h>    动态链接
9 r; X/ W; a. F" b% ]<fmtmsg.h>    消息显示结构9 T* m% \0 \' }) Y# G1 A' b; C2 A
<ftw.h>        文件树漫游
% E! }3 R! ?2 w/ ^$ b" [6 {<iconv.h>    代码集转换使用程序
: D8 u- U+ s$ y! J# ?. M7 T<langinfo.h>    语言信息常量
* G8 z% l8 \/ I7 E<libgen.h>    模式匹配函数定义
# N" K- |* r% Y4 n1 ~! @9 ^<monetary.h>    货币类型
+ A. V# f1 ^6 i) K5 D<ndbm.h>    数据库操作
# I. x0 V5 N4 O8 f! o<nl_types.h>    消息类别
4 F" t8 Y5 n8 x, m6 c<poll.h>    轮询函数
' ]9 Q6 W; e) v( w! O<search.h>    搜索表  e& p: U& b* b3 r7 ~# h
<strings.h>    字符串操作
# j) M: W0 D. A<syslog.h>    系统出错日志记录  Q6 ?+ i4 l" o- k- M$ Y
<ucontext.h>    用户上下文- K- r) i1 ~9 z" L- }* h4 G% d
<ulimit.h>    用户限制0 I+ W0 B/ Q' u
<utmpx.h>    用户帐户数据库
( o6 F; Q" g. `, w/ v$ T" W4 R1 u, l) u- U! F: q0 b5 r

5 j( v+ Q  p) ~$ ~9 C( N-----------------------------
4 F; G6 }( m6 F+ W& z
+ w$ x# t) X0 e9 E3 {8 V
2 Z6 N' E9 z* A/ b
<sys/ipc.h>    IPC(命名管道), J! r2 g1 Y0 }8 D. S$ `
<sys/msg.h>    消息队列3 m; X& g! e9 _  S1 Q# W
<sys/resource.h>资源操作3 _8 j( t1 B/ Z2 ?0 @
<sys/sem.h>    信号量
  H! {8 B, Q+ N/ W1 a. j<sys/shm.h>    共享存储# ]% u7 J: r, m8 O' i0 H0 u/ g
<sys/statvfs.h>    文件系统信息0 m3 R/ |) @7 b
<sys/time.h>    时间类型
6 t, P" ^% i/ s/ d( A<sys/timeb.h>    附加的日期和时间定义) s* r4 n; g0 ~$ T+ C
<sys/uio.h>    矢量I/O操作
7 @: _+ y1 J. u+ U, g, y" q1 [: f) Z- B- o& M" B+ r6 o$ F$ x1 Y
, e8 v. l6 P5 [/ s( r
------------------------------
7 S/ ~7 }9 T/ I$ N! c
/ z. V4 G- z5 S+ J) J
2 K' D# C$ O& a0 `$ U( P
POSIX定义的可选头文件
0 C* o" Y) F" u5 L$ L  x  ~% p7 b# e# D2 r& l0 `

1 o3 v! n  B4 {<aio.h>        异步I/O
- N2 S( C/ [! J<mqueue.h>    消息队列
" @( K7 p( z# `* C5 k- p! O3 n<pthread.h>    线程
! J3 F7 ?# p; w: k- q- {<sched.h>    执行调度
1 ^" I3 D, t: U3 A  M<semaphore.h>    信号量* j) i, j# O4 V. h
<spawn.h>     实时spawn接口* \, K. x0 o8 ]: y! O
<stropts.h>    XSI STREAMS接口
$ K, S. d8 Z$ D3 Z% f7 s. X<trace.h>     事件跟踪
  S* I6 @& b; d& W4 D# S8 N5 ?% @: A* k3 r* m" ]- C) H
- @$ I9 K* g% Z% @
3、 C/C++头文件一览) ?: k+ t, _/ s$ E5 \) \. a+ n, M
% V1 S! i2 K  ?+ Z

' H* o7 O9 R! w8 q3 n4 j3 b* n/ tC
  k# ], n2 S$ E( a  W5 p/ c/ o- c& x

' M; y0 f; F' r  x; Y#include <assert.h>    //设定插入点/ e9 \8 c) x! |1 @, M+ Z8 \+ t# e
#include <ctype.h>     //字符处理: i: u0 j" N$ p8 V
#include <errno.h>     //定义错误码" ~' U: x; w1 m# R' T. Y
#include <float.h>     //浮点数处理
& e5 I! y1 Y/ J/ T#include <iso646.h>        //对应各种运算符的宏/ T; ~/ o6 u- e$ F* l( n' d
#include <limits.h>    //定义各种数据类型最值的常量3 z$ b+ A1 `- b8 p* \
#include <locale.h>    //定义本地化C函数
3 I1 m  h) l9 N8 R" M6 Y+ R#include <math.h>     //定义数学函数& o  @; U* E5 e+ a, m+ {* r
#include <setjmp.h>        //异常处理支持2 F: @' J6 v: t, Z* C; W
#include <signal.h>        //信号机制支持
% d' f( p) L- z- E* G4 O: j8 V#include <stdarg.h>        //不定参数列表支持
( n8 D6 Y5 \* v/ E#include <stddef.h>        //常用常量
' N" E8 R- B' f% ]2 `6 j#include <stdio.h>     //定义输入/输出函数
- b% x% p4 B; U8 d- c5 e! J3 W) F2 L#include <stdlib.h>    //定义杂项函数及内存分配函数
; _5 Z3 R$ ~# R+ Y#include <string.h>    //字符串处理4 d! z1 j. s" _1 S
#include <time.h>     //定义关于时间的函数
1 G, j4 c9 ?8 ]0 l2 |, I( S#include <wchar.h>     //宽字符处理及输入/输出6 e  r* V3 q8 y8 p4 a. J/ ]; G8 w
#include <wctype.h>    //宽字符分类
2 ~8 d) B0 g2 F0 R3 x# w1 g: {" u) ~3 u" X# C
- }  L" _8 m- }  V  A7 Q
传统C++
! O6 V) K# F% y* U1 }! I& z8 j# Y2 o; f; [
# i1 A* D) w- }; J- z# w
#include <fstream.h>    //改用<fstream>7 V. e/ I( C! Y2 x$ j; E) O
#include <iomanip.h>    //改用<iomainip>) G; f+ F. M6 l9 G
#include <iostream.h>   //改用<iostream>; e) V. L: O% d0 u, ?
#include <strstrea.h>   //该类不再支持,改用<sstream>中的stringstream5 }4 [- v/ {/ [' u, T

" w  H/ N  S9 z8 O+ b

1 i; @. \2 {" W8 Y) D% D' Y————————————————————————————————2 r) L. H8 Z. n: b! `
% U2 E  b+ H! G) F7 N
+ G/ J5 b+ W- o4 i/ L6 i8 B0 ^2 x! Q
标准C++ . r7 V4 K0 O. c

# s: N! F& z; q$ @7 N& s9 L

/ v$ B- O- X6 \% h, V2 m, F) f/ s( I7 U#include <algorithm>    //STL 通用算法
! v2 Z$ X) Q$ o) O( a2 x7 h#include <bitset>     //STL 位集容器; I) q. U% Y* {! D3 r
#include <cctype>          //字符处理
4 B  Q( F$ e3 z; k8 D& x#include <cerrno>      //定义错误码: H* ~7 e* U- F! v8 Z
#include <cfloat>     //浮点数处理2 k; j4 Q; k( Q( y
#include <ciso646>         //对应各种运算符的宏, g; ]' [! K4 D0 ?! C2 F
#include <climits>     //定义各种数据类型最值的常量+ [5 m" T! \0 W( h" M5 q4 ]
#include <clocale>     //定义本地化函数
- ~: T' E" f4 Q& r& V6 n: C#include <cmath>      //定义数学函数
: Y/ ^& P$ _- b9 P! }4 N1 t& H#include <complex>     //复数类
6 {6 n, p& X/ _8 o#include <csignal>         //信号机制支持
) m  s4 b% W5 _% `( o, g0 G% \#include <csetjmp>         //异常处理支持: K/ `9 v% q' ?# `, F
#include <cstdarg>         //不定参数列表支持
8 V: W1 n( \9 @! k! H' C#include <cstddef>         //常用常量5 Z5 t* z, `3 _( H: F* u4 ]9 m
#include <cstdio>      //定义输入/输出函数
+ H  D1 S9 z1 |, Z6 X$ h0 K#include <cstdlib>     //定义杂项函数及内存分配函数# l6 I" m% n% I6 i9 y3 R
#include <cstring>     //字符串处理5 {$ b# w; S7 r! n2 d, K: r9 t. T
#include <ctime>      //定义关于时间的函数
3 ^; }0 @; E4 `0 ^3 v#include <cwchar>      //宽字符处理及输入/输出
: s% B' a/ p4 x1 }1 A#include <cwctype>     //宽字符分类! x; L2 P( l3 Q2 @1 c0 e
#include <deque>      //STL 双端队列容器' P, Y9 p  g! j# f9 |7 o
#include <exception>    //异常处理类
; G  B) a) z9 G5 c#include <fstream>     //文件输入/输出* N( |! @  {3 o4 U2 I8 N
#include <functional>   //STL 定义运算函数(代替运算符)
$ W) x! r  D9 |3 Q$ \3 j& x/ i1 B& I#include <limits>      //定义各种数据类型最值常量0 Q4 S5 q$ M& w" N7 R& D8 z. u
#include <list>      //STL 线性列表容器
: R% b; }! y$ U! M, Z. P#include <locale>          //本地化特定信息! U/ D' W$ [4 U8 _9 Y0 S
#include <map>       //STL 映射容器& i2 R# X/ k! E! Y
#include <memory>          //STL通过分配器进行的内存分配# }$ i+ B% S% h3 [& [* S* q
#include <new>             //动态内存分配
6 Z! L  D  N7 H9 e#include <numeric>         //STL常用的数字操作8 C& J3 G" t2 F) e' e* A
#include <iomanip>     //参数化输入/输出. H' N- G5 f0 q6 S/ a( e. Y
#include <ios>       //基本输入/输出支持6 |/ F4 z9 t$ F: k" H% j! c( ^2 X: J
#include <iosfwd>     //输入/输出系统使用的前置声明
; S: D3 F' [2 E& Q" ?& L1 u( N$ x#include <iostream>     //数据流输入/输出! D. l# O/ g. }9 T7 h0 L4 i8 P
#include <istream>     //基本输入流9 |% c- l5 V+ I8 Y5 e( o
#include <iterator>        //STL迭代器2 O2 J' A& g) _
#include <ostream>     //基本输出流* @2 o* G8 b+ y8 _
#include <queue>      //STL 队列容器
* |- R: p2 m4 Q5 C4 ]! h( K#include <set>       //STL 集合容器
; T1 k7 d1 r3 J* j#include <sstream>     //基于字符串的流
% B; V; D/ F: b8 z#include <stack>      //STL 堆栈容器
* z5 z  y7 v" ]' P" v; N; O#include <stdexcept>    //标准异常类
: c8 y$ P) V# J- F5 ]#include <streambuf>    //底层输入/输出支持
/ O; u5 R: H# K# V4 S5 r4 a5 e#include <string>     //字符串类8 @' d2 n( J) R4 y
#include <typeinfo>        //运行期间类型信息' Z6 T5 P2 ~+ D3 n5 `" `2 k
#include <utility>     //STL 通用模板类
% M" a4 V$ ?$ _; T) x6 N8 H, j#include <valarray>        //对包含值的数组的操作
6 ]& K1 \+ C, S, H5 `6 L#include <vector>     //STL 动态数组容器
  Z3 ^  c9 J( I: C$ f
; d. n  l2 f; v, N: \+ q
2 N/ f% |: E9 D. I% N" c

( [5 l& K, e$ g3 ^% g, X

& o) z1 T$ Y# T5 x/ D* n
( b" B8 J' ]3 {  u8 g  v/ F
( E% S' y' D  D& G6 G
  N0 y5 T9 `9 b$ P) M

8 L1 Q; }: M+ w/ U; b

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

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

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

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

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