아래의 함수들은 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)스트림의 내용을 깨끗이 정리하는 함수이다.
되돌림 값
없음.
'Programming > C & C++' 카테고리의 다른 글
C 와 C++에서 구조체 정의의 차이점 (0) | 2017.10.22 |
---|---|
Application development on AIX (0) | 2017.10.22 |
Linux Thread Programming에 대해서... (0) | 2017.10.22 |
The Joel Test: 나은 코딩을 위한 12단계 (0) | 2017.10.22 |
GCC의 컴파일 옵션에 관해서... (0) | 2017.10.22 |