노무현 대통령 배너


2006. 3. 31. 15:03

FILE 구조체 접근에 사용되는 함수와 매크로 정리

아래의 함수들은 FILE 구조(structure) 내부의 필요한 정보에 접근하기 위해서 솔라리스에서 최초로 추가된 함수들이며, glibc에서도 사용이 가능하다.

대충 정리한 것이니 토달지 마시오..^^



  • __fbufsize

    사용법
    #include<stdio.h>
    #include<stdio_ext.h>
    size_t __fbufsize (FILE *stream)


    설명
    버퍼의 크기를 알아내고, 현재 버퍼가 얼마나 사용되고 있는지 알려준다.

    되돌림 값
    주어진 스트림에서 사용된 스트림 버퍼의 크기, 이 값을 이용하여 스트림의 사용을 최적화 할 수 있다.

  • __flbf

    사용법
    #include<stdio.h>
    #include<stdio_ext.h>
    int __flbf (FILE *stream)


    설명
    주어진 버퍼가 라인 버퍼인지를 검사할 경우에 사용한다.

    되돌림 값
    주어진 스트림이 라인버퍼(line buffer)일 경우 0이 아닌 값을 되돌리고, 그렇지 않은 경우에는 0을 되돌린다.

  • __fpending

    사용법
    #include<stdio.h>
    #include<stdio_ext.h>
    size_t __fpending (FILE *stream) The __fpending


    설명
    wide-oriented 스트림의 단위는 멀티바이트 문자(wide character)이다. 읽기 또는 읽기 전용 모드에 대해서는 정의되어 있지 않다.

    되돌림 값
    출력버퍼의 현재 크기(bytes)를 되돌린다.

  • __freadable

    사용법
    #include<stdio.h>
    #include<stdio_ext.h>
    int __freadable (FILE *stream)


    설명
    해당 스트림이 읽기를 허용하는지 검사하는 함수이다.

    되돌림 값
    읽기를 허용하면 0이 아닌 값을 되돌리고, 쓰기 전용 스트림일 경우에 0의 값을 되돌린다.

  • __fwritable

    사용법
    #include<stdio.h>
    #include<stdio_ext.h>
    int __fwritable (FILE *stream)


    설명
    해당 스트림이 쓰기를 허용하는지를 검사하는 함수이다.

    되돌림 값
    쓰기를 허용하면 0이 아닌 값을 되돌리고, 읽기 전용 스트림일 경우에 0의 값을 되돌린다.

  • __freading

    사용법
    #include<stdio.h>
    #include<stdio_ext.h>
    int __freading (FILE *stream)


    설명
    __freadable 함수와 비슷하지만, 스트림이 읽기 전용으로 열렸거나, 가장 최근의 작업이 읽기였는지를 검사하는 함수이다.

    되돌림 값
    읽기 전용이거나, 마지막 작업이 읽기였다면 0이 아닌 값을 되돌리고, 그렇지 않으면 0의 값을 되돌린다.

  • __fwriting

    사용법
    #include<stdio.h>
    #include<stdio_ext.h>
    int __fwriting(FILE *stream)


    설명
    __fwritable 함수와 비슷하지만, 스트림이 쓰기 전용으로 열렸거나, 가장 최근의 작업이 쓰기였는지를 검사하는 함수이다.

    되돌림 값
    쓰기 전용(또는 이어쓰기 전용:append-only)이거나, 마지막 작업이 쓰기였다면 0이 아닌 값을 되돌리고, 그렇지 않으면 0의 값을 되돌린다.

  • __fsetlocking

    사용법
    #include<stdio.h>
    #include<stdio_ext.h>
    int __fsetlocking(FILE *stream, int type)


    설명
    스트림의 잠긴 객체에서 원하는 type을 선택할 수 있게 하기 위해서 주로 사용하는 함수이다.

    매개 변수
    type에는 다음 세가지 유형의 매개 변수를 사용할 수 있다.

     FSETLOCKING_INTERNAL
    해당 스트림의 모든 작업에 대해서 무조건 잠금 작업을 수행한다. 단, *_unlocked 로 설정된 것은 제외. 기본값
     FSETLOCKING_BYCALLERL
    호출자는 잠금상태를 보호하고(하나 또는 그 이상의 쓰레드에서는 flockfile() 함수를 사용함으로써 가능함), 표준 I/O 루틴은 FSETLOCKING_INTERNAL에 의해 상태가 리셋되기 전까지는 잠금상태로 바꾸지 않는다.
     FSETLOCKING_QUERY
    현재의 잠금 유형을 변경하지 않으며, 현재 상태값만을 되돌려준다. 상태에 따라서 FSETLOCKING_INTERNAL 또는 FSETLOCKING_BYCALLER 이다.

    되돌림 값
    함수가 호출되기 전의 상태에 따라서, type(FSETLOCKING_INTERNAL 또는 FSETLOCKING_BYCALLER)값을 되돌린다.

  • __fpurge

    사용법
    #include<stdio.h>
    #include<stdio_ext.h>
    void __fpurge(FILE *stream)


    설명
    스트림 버퍼의 내용을 삭제하는(비우는) 함수이다. 만약 스트림이 읽기 모드라면 현재 가지고 있는 버퍼의 내용을 모두 잃어버리게 된다. 만약 쓰기 모드라면, 기록되지 않으며 버퍼가 완전히 비워진다.

    되돌림 값
    없음.

  • _flushlbf

    사용법
    #include<stdio.h>
    #include<stdio_ext.h>
    void _flushlbf(void)


    설명
    현재 열려있는 라인 버퍼(line-buffered)스트림의 내용을 깨끗이 정리하는 함수이다.

    되돌림 값
    없음.