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

(2018-06-18)

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

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


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

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

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


3. 표준 C 라이브러리 

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

  ㅇ 표준 C (ANSI C) 라이브러리 함수 例) 
     - ctype.h  : isalpha(), isupper() 등 (문자 처리 함수)
     - stdio.h  : (표준 입출력 함수)
        . getchar(). putchar(), fopen(), fclose(), fgets(), printf(), scanf() 등
     - string.h : strlen(), strcmp(), strcpy() 등 (문자열 처리 함수)
     - stdlib.h : malloc(), free() 등 (범용 함수)
     - math.h   : sin(), cos(), pow() 등 (수학 함수)
     - time.h   : difftime(), mktime() 등 (날짜,시간 관련 함수)


4. C 라이브러리 구분

  ㅇ 표준 C 라이브러리
     - 표준 헤더 파일 (ISO C 표준에 정의된 헤더 파일들) 
        . assert.h : 프로그램 진단(diagnostics) 매크로
        . conio.h  : 콘솔(console) 입출력 함수 (putch(),cputs(),cprintf() 등)
        . complex.h
        . ctype.h  : 문자형 판별 함수 (isalpha(),isdigit() 등), 
                     문자 변환 함수 (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 : 표준 입출력 라이브러리
           .. 표준 입출력 함수 : printf(), scanf(), puts() 등
           .. 파일 열기/닫기 함수 : fopen(), fclose()
           .. 파일 읽기 함수 : fgetc(), fgets(), fread() 등
           .. 파일 쓰기 함수 : fputc(), fputs(), fwrite() 등
        . stdlib.h : 범용 유틸리티
           .. 자료형 변환, 기억장소 할당 등에 관련됨
           .. 함수 : malloc(), free(), exit() 등
           .. 상수 : NULL, EXIT_FAILURE, EXIT_SUCCESS, RAND_MAX 등
        . string.h : 문자열 처리 함수(strcat(),strcmp(),strcpy(),strlen() 등)
        . tgmath.h 
        . time.h   : 날짜와 시간을 다루는 함수
        . wchar.h
        . wctype.h

  ㅇ 런타임 라이브러리
     * (유닉스운영체제 관련)

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

     - 시스템 호출헤더 파일 例)
        . 例) fcntl.h (열려있는 파일의 특성 제어를 위해서 사용), syscall.h, unistd.h 등


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

 
        최근수정     요약목록(시험중)     참고문헌