저수준 파일 입출력, 저수준 입출력 함수

(2018-06-28)

저수준 파일 I/O, open(), read(), write(), close()

1. [UNIX/Linux]  저수준 파일 입출력 함수

  ※ 대부분의 파일 입출력을 open,read,write,lseek,close 등 5개 함수만으로 수행 가능

  ㅇ int open(const char *path, int oflag, [mode_t mode]);
     - 헤더 파일 : 'sys/types', 'sys/stat.h', 'fcntl.h'
     - 의미
        . 지정 경로(path)에 파일 생성 또는 기존 파일을 오픈하고,
          파일 접근을 위한 파일기술자를 반환 함
           .. 즉, 성공시 파일기술자(번호) 반환, 실패시 -1 반환

     - oflag 플래그 : 읽기 쓰기에 대한 목적 등 세팅
        . O_RDONLY : 읽기 전용으로 파일 오픈
        . O_WRONLY : 쓰기 전용으로 파일 오픈
        . O_RDWR   : 읽기 쓰기 겸용으로 파일 오픈
        . O_APPEND : 기존 파일 맨뒤에 덧붙임
        . O_TRUNC  : 기존 파일 내용 삭제 (파일 크기를 0 으로 만듬)

        . O_CREAT  : 필요하면 파일 생성
        . O_EXCL   : 파일 생성하나, 이미 존재하는 파일이면 에러 발생시킴

        . O_NONBLOCK : 다른 프로세스가 접근중이라도, 읽기 모드를 허용
        . O_SYNC   : 물리적으로 쓰기 완료 전까지는 파일 쓰는 것을 금지함

        . 위 플래그들을 비트 OR 연산자로 묶어 표현 가능
     - mode 플래그 : 파일 권한 정보

  ㅇ ssize_t read(int fd, void *buf, size_t nbytes);
     - 헤더 파일 : 'sys/types', 'unistd.h'
     - 성공적으로 열려진 파일 또는 소켓에 대해 파일기술자를 통해 파일에 접근하여,
       규정한 바이트 단위 만큼 데이터들을 읽음
        . 성공시 수신된 바이트 수 (단, 파일끝을 만나면 0) 반환, 실패시 -1 반환
     - 인자
        . fd     : 열려진 파일 또는 소켓에 대한 파일기술자(번호)
        . buf    : 파일 또는 소켓에서 읽은 데이터를 저장할 버퍼의 포인터(주소값)
        . nbytes : 파일 또는 소켓에서 읽을 데이터의 바이트 단위 길이

  ㅇ ssize_t write(int fd, const void *buf, size_t nbytes);
     - 헤더 파일 : 'sys/types', 'unistd.h'
     - 인자 : 위 read 함수와 유사
        . fd     : 열려진 파일 또는 소켓에 대한 파일기술자(번호)
        . buf    : 전송할 데이터가 저장된 버퍼의 포인터(주소값)
        . nbytes : 전송할 데이터의 바이트 단위 길이

  ㅇ int close(int fd);
     - 헤더 파일 : 'unistd.h'
     - 의미 : 열려진 파일기술자 또는 소켓을 닫음
        . 성공시 0 반환, 실패시 -1 반환


[파일] 1. 파일 2. 파일 I/O 3. 저수준 파일 I/O 4. 화일 기술자 5. 화일 포인터 6. 화일 끝(EOF)
  1.   기술공통
  2.   기초과학
  3.   진동/파동
  4.   방송/멀티미디어/정보이론
  5.   전기전자공학
  6.   통신/네트워킹
  7.   정보기술(IT)
        1. 정보기술
    1.   전산기초
    2.   컴퓨터구조
    3.   프로그래밍
    4.   데이터베이스
    5.   소프트웨어 공학
    6.   운영체제
      1.   운영체제(일반)
      2.   프로세스
      3.   윈도우즈
      4.   UNIX (LINUX)
        1.   UNIX 일반
        2.   UNIX 프로세스
        3.   메모리 관리
        4.   IPC
        5.   UNIX 장치
        6.   UNIX 파일시스템
              1. UNIX 파일시스템
              2. 슈퍼 블록
              3. 링크
              4. Inode
              5. 디렉토리
          1.   파일
            1.   1. 파일
                2. 파일 I/O
                3. 저수준 파일 I/O
                4. 화일 기술자
                5. 화일 포인터
                6. 화일 끝(EOF)
        7.   UNIX 유틸리티
        8.   리눅스(Linux)
    7.   정보보호/보안
    8.   IT 기타기술
  8.   공업일반(기계,재료등)
  9.   표준/계측/품질
  10.   기술경영

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