Library   라이브러리

(2017-02-15)

C 라이브러리, 헤더 파일, 헤더 화일

1. 라이브러리

  ㅇ 프로그램 재사용 및 생산성 향상을 위해 프로그램 내부처리에 깊게 관여하지 않도록
     도와주는 함수들의 집단


2. 라이브러리 특징

  ㅇ 재사용이 가능하도록 작성되고 미리 컴파일함수의 모음
     - 이들은 대개 공통적인 작업을 수행하기 위한 일련의 함수들로 구성됨


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

  ㅇ 라이브러리 화일헤더 화일
     - C 라이브러리 함수에 대한 컴파일코드들은 라이브러리 화일들에 있고,
     - 함수 프로토타입(Function Prototype,함수원형)은 헤더 화일에 들어있게 됨
        . 이 함수 원형이 있는 헤더 화일을 프로그램 처음에 포함(include)시키게됨

  ㅇ C 라이브러리 사용 : 헤더 파일을 포함(#include)시켜 사용

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

  ㅇ C 라이브러리 함수 例) 
     - fopen(), printf(), malloc(), free() 등


4. C 라이브러리 구분

  ㅇ 표준 C 라이브러리
     - 표준 헤더 파일 (ISO C 표준에 정의된 헤더 파일들) 
        . assert.h, complex.h, ctype.h, errno.h, fenv.h, float.h, inttypes.h,
          iso646.h, limits.h, locale.h, math.h, setjmp.h, signal.h, stdarg.h, 
          stdbool.h, stddef.h, stdint.h, stdio.h, stdlib.h, string.h, tgmath.h, 
          time.h, wchar.h, wctype.h

     - 例)
        . stdio.h  : 입출력 함수(printf(),scanf() 등), 파일 관련 함수(fopen(),fclose() 등)
        . conio.h  : 콘솔 입출력 함수(putch(),cputs(),cprintf() 등)
        . string.h : 문자열 처리 함수(strcat(),strcmp(),strcpy(),strlen() 등)
        . math.h   : 수학 함수( sqrt(),sin(),cos(),tan() 등)
        . ctype.h  : 문자 판별 함수( isalpha(),isdigit() 등), 
                     문자 변환 함수(tolower(),toupper() 등)

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

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


5. UNIX/Linux 경우시스템 내 라이브러리 위치 :  /lib 및 /usr/lib 등

  ㅇ 라이브러리 이름 :  항상 lib로 시작함

  ㅇ 구분 : 정적 라이브러리, 공유 라이브러리
     - 정적 라이브러리 : 화일 이름이 .a로 끝남
     - 공유 라이브러리 : 화일 이름이 .so 및 .sa로 끝남
       . 공유 라이브러리는 많은 점에서 MS 윈도우즈동적 링크 라이브러리(DLL)와 비슷


[C/C++] 1. C 프로그래밍 언어 2. C 언어 구조체 3. C 연산자,C++ 연산자 4. C++ 언어 5. 포인터 6. 화일포인터 7. C 함수 8. 라이브러리

 
        최근수정     참고문헌