C 라이브러리, C 언어 라이브러리

(2020-04-09)

libc, 표준 C 라이브러리, Header File, 헤더 파일, 헤더 화일

1. C 라이브러리C 언어에서는, 
     - 자주 사용하는 함수들을 미리 작성하여 두고,
        . 상세 구현 사항은 별도로 모아 저장시켜둔 것
        . 통상, 미리 컴파일되어 라이브러리 파일 형태로 됨
     - 그 프로토타입(함수 원형) 만을 공개 함


2. C 라이브러리의 사용라이브러리 화일
     - C 라이브러리 함수들에 대해 미리 컴파일파일들

  ㅇ 헤더 화일
     - 헤더 화일에는 주로 함수 프로토타입(Function Prototype,함수 원형)이 들어있게 됨

  ㅇ C 라이브러리의 사용 방법
     - 함수 프로토타입이 있는 헤더 화일프로그램 처음에 포함(#include)시켜 사용


3. 표준 C 라이브러리 (`standard C library`, `libc` 라고 칭함)

  ㅇ 표준 C 라이브러리 (역사 및 버전에 따라 여러가지가 있을 수 있음)
     - 플랫폼(운영체제)에 독립적임 : ANSI C/ISO C library
     - 유닉스 표준 : C POSIX library
     - 리눅스에서 많이 사용 : GNU C 라이브러리 (glibc)
     - 임베디드 리눅스에서 많이 사용 : uClibc, diet libc 등

  ㅇ 표준 C (ANSI C) 라이브러리 함수 例) ☞ 아래 4.항 참조


4. C 라이브러리 구분

  ㅇ 표준 C 라이브러리
     - 표준 헤더 파일 (ISO C 표준에 정의된 헤더 파일들) 
        . assert.h : 프로그램 진단(diagnostics) 매크로
        . conio.h  : 콘솔(console) 입출력 함수 
           .. putch(),cputs(),cprintf() 등
        . complex.h
        . ctype.h 
           .. 문자형 판별 함수 : isalpha(),isdigit(),isupper() 등
           .. 문자 변환 함수 : tolower(),toupper() 등
        . errno.h
        . fenv.h
        . float.h  : 실수형에 관한 상수 정의
        . inttypes.h,
        . iso646.h
        . limits.h : 정수형에 관한 상수 정의
        . locale.h
        . math.h   : 수학 함수와 매크로
           .. sqrt(),sin(),cos(),tan() 등
        . setjmp.h : 일반적인 함수 호출과 복귀 과정을 거치지 않는 함수
        . signal.h : 프로그램 수행 중 발생하는 예외상황을 처리하는 함수
        . stdarg.h : 미확정 매개변수를 다루는 함수
        . stdbool.h
        . stddef.h
        . stdint.h
        . stdio.h : 표준 입출력 라이브러리표준 파일, C 파일 처리 함수 참조
           .. 문자 단위의 입출력 : getchar(), putchar()
           .. 표준 입출력 함수 : printf(), scanf(), puts(), putchar() 등
           .. 파일 열기/닫기 함수 : fopen(), fclose()
           .. 파일 읽기 함수 : fgetc(), fgets(), fread() 등
           .. 파일 쓰기 함수 : fputc(), fputs(), fwrite() 등
        . stdlib.h : 범용 유틸리티
           .. 범용 함수,매크로 등
           .. 자료형 변환(문자열숫자형) : atoi(), strtol(), atof() 등
           .. 기억장소 할당 : malloc(), free() 등
           .. 정렬,검색 알고리즘 : qsort(), bsearch() 등
           .. 상수 정의 : NULL, EXIT_FAILURE, EXIT_SUCCESS, RAND_MAX 등
        . string.h : 문자열 처리 함수
           .. 함수 : strcat(), strcmp(), strcpy(), strlen() 등    ☞ C 문자열 함수 참조
        . tgmath.h 
        . time.h   : 날짜와 시간을 다루는 함수
           .. difftime(), mktime() 등
        . wchar.h
        . wctype.h

  ㅇ 런타임 라이브러리
     * (Unix/Linux 운영체제 관련)

     - 운영체제 커널 차원에서 제공
        . 컴파일러플랫폼에 특화되어 있음
        . 일반적인 C 언어 함수 호출 보다는 운영체제의 지원을 받는 시스템 호출을 의미
           .. 입출력, 메모리 관리 등에 대한 기능들 

     - 시스템 호출헤더 파일 例)
        . fcntl.h (열려있는 파일의 특성 제어를 위해서 사용)
        . syscall.h 
        . unistd.h (다양한 심볼 상수, 자료형, 함수 등을 정의)
           .. /usr/include/asm/unistd.h


[C 언어 컴파일] 1. 라이브러리 2. C 라이브러리 3. 선행처리 4. GNU C 컴파일러

 
        최근수정     요약목록     참고문헌