sourcecode

C와 C++의 표준 헤더 파일 목록

codebag 2023. 6. 17. 09:05
반응형

C와 C++의 표준 헤더 파일 목록

C와 C++의 모든 헤더 파일 목록은 어디에서 찾을 수 있습니까?

라이브러리를 구축하는 동안 '와 같은 오류가 발생합니다.tree.h not found이것은 C와 C++의 표준 헤더 파일인 것 같습니다.이것은 저에게 모든 헤더 파일과 그들의 기여를 알고 싶은 호기심을 불러일으켰습니다.

제가 검색할 수 있는 곳이 있나요?

저는 Solaris Unix에서 일하고 있습니다.

머리글 '트리'입니다.h'는 어디에서도 표준이 아닙니다.


C 표준

ISO/IEC 9899:1990 (C89, C90)

C89의 15개 표준 헤더는 다음과 같습니다.

<assert.h>  <limits.h>  <signal.h>  <stdlib.h>
<ctype.h>   <locale.h>  <stdarg.h>  <string.h>
<errno.h>   <math.h>    <stddef.h>  <time.h>
<float.h>   <setjmp.h>  <stdio.h>

ISO/IEC 9899:1990/Amd.1:1995

C94*(개정판 1)에 도입된 3개의 추가 헤더는 다음과 같습니다.

<iso646.h>  <wchar.h>  <wctype.h>

ISO/IEC 9899:1999 (C99)

C99의 6개 추가 헤더는 다음과 같습니다.

<complex.h>  <inttypes.h>  <stdint.h>  <tgmath.h>
<fenv.h>     <stdbool.h>

ISO/IEC 9899:2011 (C11)

C2011의 추가 헤더 5개(총 29개)는 다음과 같습니다.

<stdalign.h>  <stdatomic.h>  <stdnoreturn.h>  <threads.h>  <uchar.h>

ISO/IEC 9899:2018 (C17, C18)

추가 헤더 없음.

ISO/IEC 9899:2023 (C23)

C2023의 추가 헤더 2개(총 31개)는 다음과 같습니다.

<stdbit.h>  <stdckdint.h>

일부 헤더는 다음과 같이 구식이 됩니다.

<stdalign.h>  <stdbool.h>  <stdnoreturn.h>

ISO/IEC 9045:2008(POSIX 2008, 단일 유닉스 규격)

POSIX에는 더 많은 헤더(82개, 모든 C99 헤더 포함)가 필요합니다.아래 목록은 표준 C(C99) 헤더를 반복합니다.물론 Windows에는 다른 헤더 집합이 필요합니다.

<aio.h>        <libgen.h>       <spawn.h>         <sys/time.h>
<arpa/inet.h>  <limits.h>       <stdarg.h>        <sys/times.h>
<assert.h>     <locale.h>       <stdbool.h>       <sys/types.h>
<complex.h>    <math.h>         <stddef.h>        <sys/uio.h>
<cpio.h>       <monetary.h>     <stdint.h>        <sys/un.h>
<ctype.h>      <mqueue.h>       <stdio.h>         <sys/utsname.h>
<dirent.h>     <ndbm.h>         <stdlib.h>        <sys/wait.h>
<dlfcn.h>      <net/if.h>       <string.h>        <syslog.h>
<errno.h>      <netdb.h>        <strings.h>       <tar.h>
<fcntl.h>      <netinet/in.h>   <stropts.h>       <termios.h>
<fenv.h>       <netinet/tcp.h>  <sys/ipc.h>       <tgmath.h>
<float.h>      <nl_types.h>     <sys/mman.h>      <time.h>
<fmtmsg.h>     <poll.h>         <sys/msg.h>       <trace.h>
<fnmatch.h>    <pthread.h>      <sys/resource.h>  <ulimit.h>
<ftw.h>        <pwd.h>          <sys/select.h>    <unistd.h>
<glob.h>       <regex.h>        <sys/sem.h>       <utime.h>
<grp.h>        <sched.h>        <sys/shm.h>       <utmpx.h>
<iconv.h>      <search.h>       <sys/socket.h>    <wchar.h>
<inttypes.h>   <semaphore.h>    <sys/stat.h>      <wctype.h>
<iso646.h>     <setjmp.h>       <sys/statvfs.h>   <wordexp.h>
<langinfo.h>   <signal.h>

또한 X/OpenCurs에는 다른 헤더 집합이 필요합니다. 7)이되었습니다(1996년 첫 - 및 C 2009, 11, 11, (Release 7)에 대한 입니다). 주요 차이점은 termcap 및 사전 표준 C에 대한 공식 지원의 손실입니다.<varargs.h>헤더).

<curses.h>  <term.h>  <uncntrl.h>

리눅스 표준 기반

다른 헤더를 사용해야 할 수도 있습니다.를 들어, 예를들어대, ▁mention▁for습에 대한 언급은 없습니다.<getopt.h>그러나 GNU Getopt를 사용하는 경우(예: 긴 옵션의 경우) 해당 헤더가 필요하고 사용됩니다.LSB, Linux Standards Base에 따라 Linux에서 표준으로 제공됩니다.LSB의 이전 버전은 여러 부분에서 ISO/IEC 23360:2006으로 정의되었습니다. 2014-09-21 현재 LSB의 현재 버전은 4.1이지만 버전 5.0은 베타 버전입니다.문서에는 어떤 헤더가 포함되는지 정의하는 섹션이 있지만, 제가 본 버전에는 편리한 헤더 표가 없습니다.POSIX와 밀접하게 연계되어 있지만 POSIX가 정의하는 것 이상의 추가 기능이 있습니다.


C++ 표준

ISO/IEC 14882:1998 (C++98)

이 표준은 C++에 특화된 32개의 헤더를 나열합니다.

<algorithm>   <iomanip>   <list>     <ostream>    <streambuf>
<bitset>      <ios>       <locale>   <queue>      <string>
<complex>     <iosfwd>    <map>      <set>        <typeinfo>
<deque>       <iostream>  <memory>   <sstream>    <utility>
<exception>   <istream>   <new>      <stack>      <valarray>
<fstream>     <iterator>  <numeric>  <stdexcept>  <vector>
<functional>  <limits>

또한 C의 헤더에 해당하는 18개의 헤더가 있습니다(C94에 해당).

<cassert>  <ciso646>  <csetjmp>  <cstdio>   <ctime>
<cctype>   <climits>  <csignal>  <cstdlib>  <cwchar>
<cerrno>   <clocale>  <cstdarg>  <cstring>  <cwctype>
<cfloat>   <cmath>    <cstddef>

D 되지 않는 헤더인 흥게도롭, 부§ D (는 D.7)가 나열되어 있습니다.<strstream>표준 앞에 언급되지 않은 것. 헤더를 GCCGCC 에해헤포함더당(포함)에 포함합니다.g++) 7.2.0은 다음과 같은 경고를 생성합니다.

/opt/gcc/v7.2.0/include/c++/7.2.0/backward/backward_warning.h:32:2:
warning: #warning This file includes at least one deprecated or antiquated
header which may be removed without further notice at a future date.
Please use a non-deprecated interface with equivalent functionality
instead. For a listing of replacement headers and interfaces, consult
the file backward_warning.h. To disable this warning use -Wno-deprecated. [-Wcpp]

머글<strstream>표준의 다른 버전에 명시적으로 나와 있습니다.

ISO/IEC 14882:2011 (C++11)

C++11의 53개의 C++ 헤더는 다음과 같습니다.

<algorithm>           <initializer_list>  <numeric>           <system_error>
<array>               <iomanip>           <ostream>           <thread>
<atomic>              <ios>               <queue>             <tuple>
<bitset>              <iosfwd>            <random>            <type_traits>
<chrono>              <iostream>          <ratio>             <typeindex>
<codecvt>             <istream>           <regex>             <typeinfo>
<complex>             <iterator>          <scoped_allocator>  <unordered_map>
<condition_variable>  <limits>            <set>               <unordered_set>
<deque>               <list>              <sstream>           <utility>
<exception>           <locale>            <stack>             <valarray>
<forward_list>        <map>               <stdexcept>         <vector>
<fstream>             <memory>            <streambuf>
<functional>          <mutex>             <string>
<future>              <new>               <strstream>

C(C11)와 관련된 26개의 헤더는 다음과 같습니다.

<cassert>   <cinttypes>  <csignal>    <cstdio>   <cwchar>
<ccomplex>  <ciso646>    <cstdalign>  <cstdlib>  <cwctype>
<cctype>    <climits>    <cstdarg>    <cstring>
<cerrno>    <clocale>    <cstdbool>   <ctgmath>
<cfenv>     <cmath>      <cstddef>    <ctime>
<cfloat>    <csetjmp>    <cstdint>    <cuchar>

ISO/IEC 14882:2014 (C++14)

ISO/IEC JTC1/SC22/WG21 사이트에서 초안 표준 N3797을 기반으로 한 임시 헤더 목록.데이터는 아래에 명시된 대로 수정된 섹션 17.6.1.2 헤더의 표 14와 15에서 가져온 것입니다.표준이 발표되지 않았기 때문에(2014-09-21 기준), 이 목록은 아직 확정되지 않았습니다.

C++14의 54개의 C++ 헤더는 다음과 같습니다.

<algorithm>           <initializer_list>  <numeric>           <strstream>
<array>               <iomanip>           <ostream>           <system_error>
<atomic>              <ios>               <queue>             <thread>
<bitset>              <iosfwd>            <random>            <tuple>
<chrono>              <iostream>          <ratio>             <type_traits>
<codecvt>             <istream>           <regex>             <typeindex>
<complex>             <iterator>          <scoped_allocator>  <typeinfo>
<condition_variable>  <limits>            <set>               <unordered_map>
<deque>               <list>              <shared_mutex>      <unordered_set>
<exception>           <locale>            <sstream>           <utility>
<forward_list>        <map>               <stack>             <valarray>
<fstream>             <memory>            <stdexcept>         <vector>
<functional>          <mutex>             <streambuf>
<future>              <new>               <string>

C(C11)와 관련된 26개의 헤더는 C++11과 비교하여 변경되지 않습니다.

<cassert>   <cinttypes>  <csignal>    <cstdio>   <cwchar>
<ccomplex>  <ciso646>    <cstdalign>  <cstdlib>  <cwctype>
<cctype>    <climits>    <cstdarg>    <cstring>
<cerrno>    <clocale>    <cstdbool>   <ctgmath>
<cfenv>     <cmath>      <cstddef>    <ctime>
<cfloat>    <csetjmp>    <cstdint>    <cuchar>

하여 C, 즉 C++11의 C++14의 헤더가 .<shared_mutex>.

NB:되어 있습니다(NB: 는여개헤나있다습니어열되더가의러초안에▁nbn).<deque>,<istream>,<stdexcept>,<unordered_set>두 번 . ++의 표에 되어 있지 . 즉, C++11의 헤더 5개입니다.<exception>,<iterator>,<ratio>,<scoped_allocator>,그리고.<thread>은 § 18.8을 정의하고 있기 에,<exception>24를 정의합니다.<iterator>은 § 20.11을 정의합니다.<ratio>30을 정의합니다.<thread>그리고 § 30.4는 정의합니다.<shared_mutex>이것은 초안 표준을 최종 단어로 신뢰하지 말아야 하는 이유의 예입니다. 초안 표준에는 오류가 포함되어 있습니다.

ISO/IEC 14882:2017 (C++17)

2017-03-21년 N4659 초안에 기초한 C++17의 헤더 잠정 목록.이것은 섹션 20.5.1.2 헤더의 표 16과 17을 전사한 것입니다.이것은 최종 기준이 아닙니다. 이론적으로, 무언가가 바뀔 수 있습니다.

61개의 C++ 헤더가 있습니다.

<algorithm>           <future>            <numeric>           <strstream>
<any>                 <initializer_list>  <optional>          <system_error>
<array>               <iomanip>           <ostream>           <thread>
<atomic>              <ios>               <queue>             <tuple>
<bitset>              <iosfwd>            <random>            <type_traits>
<chrono>              <iostream>          <ratio>             <typeindex>
<codecvt>             <istream>           <regex>             <typeinfo>
<complex>             <iterator>          <scoped_allocator>  <unordered_map>
<condition_variable>  <limits>            <set>               <unordered_set>
<deque>               <list>              <shared_mutex>      <utility>
<exception>           <locale>            <sstream>           <valarray>
<execution>           <map>               <stack>             <variant>
<filesystem>          <memory>            <stdexcept>         <vector>
<forward_list>        <memory_resource>   <streambuf>
<fstream>             <mutex>             <string>
<functional>          <new>               <string_view>

는 다음과 C++14 비교헤더다같습다니.<any>,<execution>,<filesystem>,<memory_resource>,<optional>,<string_view>,<variant>.

C(C11)와 관련된 26개의 헤더는 C++11 및 C++14와 비교하여 변경되지 않습니다.

<cassert>   <cinttypes>  <csignal>    <cstdio>   <cwchar>
<ccomplex>  <ciso646>    <cstdalign>  <cstdlib>  <cwctype>
<cctype>    <climits>    <cstdarg>    <cstring>
<cerrno>    <clocale>    <cstdbool>   <ctgmath>
<cfenv>     <cmath>      <cstddef>    <ctime>
<cfloat>    <csetjmp>    <cstdint>    <cuchar>

참고 항목C++17의 새로운 기능은 무엇입니까?

일부 'C 라이브러리' 헤더는 특히 C++17에서 더 이상 사용되지 않습니다.<ccomplex>,<cstdalign>,<cstdbool>,<ctgmath> 아님)<ciso646> ). C++ 헤더<codecvt>(C++11에서 추가됨) 또한 C++17에서 더 이상 사용되지 않습니다.


* 날짜의 '1년 차이' 문제는 표준이 승인된 후 표준을 처리하는 데 걸리는 시간 때문입니다.ANSI는 1989년에 원래의 C 표준을 승인했고 ISO는 1990년에 그것을 승인했습니다.수정헌법 1조는 1994년에 승인되었으며 1995년에 발표되었습니다.

여기에서 시도해 보십시오. http://en.cppreference.com/w/

그러나 OS의 헤더 파일을 참조할 수도 있습니다.정보는 MSDN(Windows)에서 수 .man명령(POSIX 시스템).또는 다른 OS를 사용하는 경우 다른 소스.

http://www.cplusplus.com/reference/ 에는 표준 C++ 헤더와 C 헤더 파일의 C++ 래퍼가 모두 나열되어 있습니다.

tree.h는 표준 라이브러리의 일부가 아닙니다.

저는 C 표준 라이브러리에서 이 위키백과 항목을 찾았습니다. 여기에는 C 헤더 파일 목록과 어떤 표준에 속하는지에 대한 자세한 정보가 들어 있습니다.그것은 여러분에게 멋진 역사적 관점과 비슷한 세부사항들을 제공합니다.

물론 그건 그냥 C야.비슷한 기사가 "C++ 표준 라이브러리"에 있습니다.그것은 또한 그 자체로는 "표준"이 아닐 수도 있지만, C++이 없다면 확장으로 작업하는 데 익숙한 일부 사람들에게 "지독하다"고 느낄 수 있는 다른 라이브러리들에 대한 언급을 가지고 있습니다.

언급URL : https://stackoverflow.com/questions/2027991/list-of-standard-header-files-in-c-and-c

반응형