ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 3. File I/O - library calls(2)
    HW & SW Interface/System Programming 2020. 5. 5. 15:48

    # File Open

    filename의 파일을 type 모드로 열기

    #include <stdio.h>
    File *fopen(const char *filename, const char *type);

     

    parameters

    • filename: 파일 이름 (string)
    • type: 파일 접근 모드

     

    type 의미
    r read-only
    w write/ 파일이 존재하면 덮어쓰고, 존재하지 않으면 생성
    a append mode(EOF), write-only/ 파일 존재하지 않으면 생성 
    r+ read + write
    w+ read + write/ 파일이 존재하면 덮어쓰고, 존재하지 않으면 생성
    a+ read/append mode(EOF)/ 파일 존재하지 않으면 생성

    return

    • 성공 -> file stream pointer
    • 실패 -> NULL

     

     

    # File Reopen

    file stream(파일 객체)을 닫고 filename을 파일 객체(stream)로 연결.

    #include <stdio.h>
    FILE *freopen(const char *filename, const char *type, FILE *stream);

    parameters

    • filename: 파일 이름 (string)
    • type: 파일 접근 모드
    • stream: 파일 객체

     

    return

    • 성공 -> file stream pointer
    • 실패 -> NULL

     

     

    # File Close

    file stream 닫기

    #include <stdio.h>
    int fclose(FILE *stream);

    return

    • 성공 -> 0
    • 실패 -> EOF

     

     

    # File I/O functions

    string 형태로 버퍼에 저장하는(읽고 쓰는) 형식

     

    파일 읽기

     stream에서 nitems만큼의 데이터를 읽어와서, ptr이 가리키는 버퍼에서 쓰기

    size_t fread(void *ptr, size_t size, size_t nitems, FILE *stream)

    parameters

    • ptr: 파일로부터 읽어들인 데이터를 저장할 주소 버퍼 포인터
    • size: 파일 obj의 유닛 사이즈(실제 크기/ bytes)
    • nitems: 읽어들일 obj의 개수
    • stream: 읽을 파일 포인터

     

    return

    • 성공 -> 읽어들인 파일의 데이터 수
    • 실패 -> EOF

     

     

    파일에 쓰기

     ptr이 가리키는 버퍼에서 nitems만큼의 데이터를 가져와, stream에 쓰기

    size_t fwrite(void *ptr, size_t size, size_t nitems, FILE *stream)

    parameters

    • ptr: 데이터를 가지고 있는 버퍼 포인터
    • size: 파일 obj의 유닛 사이즈(실제 크기/ bytes)
    • nitems: 쓸 obj의 개수
    • stream: 쓸 파일 포인터

     

    return

    • 성공 -> 쓴 파일의 데이터 수
    • 실패 -> EOF

     

     

    # Character Input & Output

    char 형태로 버퍼에 저장하는(읽고 쓰는) 형식

     

    Input

    //return integer
    int getc(FILE *stream);
    int fgetc(FILE *stream);
    int getchar();
    
    //return string address
    char *fgets(char *s, int size, FILE *stream);
    char *gets(char *s);
    
    //return c
    int ungetc(int c, FILE *stream);

     

    Output

    //return integer
    int putc(int c, FILE *stream);
    int fputc(int c, FILE *steram);
    int putchar(int c)
    
    //return number of chars
    int *fputs(const char *s, FILE *stream);
    char *puts(const char *s);

     

    'HW & SW Interface > System Programming' 카테고리의 다른 글

    5. File I/O - system calls(1)  (0) 2020.05.05
    4. File I/O - library calls(3)  (0) 2020.05.05
    2. File I/O - library calls(1)  (0) 2020.05.05
    1. Introduction  (0) 2020.05.04

    댓글

Designed by Tistory.