본문 바로가기

Programming/C & C++

함수와 매크로에 대한 정리

아래의 함수들은 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)스트림의 내용을 깨끗이 정리하는 함수이다.


되돌림 값

없음.