`FGETC` — 스트림 모드로 한 문자 읽기
FGETC — 스트림 모드로 한 문자 읽기
특정 I/O 단위에서 한 글자씩 스트림 방식으로 읽어야 할 때가 있어요. FGET과 달리 대상 단위(unit)를 지정할 수 있는 내장이 FGETC예요.
출처: The GNU Fortran Compiler — FGETC (Read a single character in stream mode)
본문
시그니처
CALL FGETC(UNIT, C [, STATUS])
또는 함수 형태로:
STATUS = FGETC(UNIT, C)
설명
일반적인 형식화 출력을 우회해서 스트림 모드로 한 문자를 읽어요.
스트림 I/O는 같은 단위에서 일반적인 레코드 지향(형식화/비형식화) I/O와 섞어 쓰면 안 돼요 — 결과가 예측 불가능해요.
이 내장은 서브루틴과 함수 두 형태로 제공되지만, 하나의 프로그램 단위에서는 한 형태만 쓸 수 있어요.
참고로 FGET 내장은 g77과의 하위 호환성을 위해 제공돼요. GNU Fortran은 Fortran 2003의 Stream 기능을 제공하므로, 새 코드에서는 미래의 이식성을 위해 새 스트림 I/O 기능을 쓰는 게 좋아요. (Fortran 2003 상태 항목 참고)
클래스
Subroutine, function (서브루틴 및 함수)
인자
| 인자 | 설명 |
|---|---|
UNIT |
INTEGER 타입이어야 해요. |
C |
기본 kind의 CHARACTER 타입이어야 해요. |
STATUS |
(선택) INTEGER 타입의 상태 플래그. 성공 시 0, 파일 끝에서 -1, 그 외에는 시스템 특유의 양수 오류 코드를 돌려줘요. |
예제
PROGRAM test_fgetc
INTEGER :: fd = 42, status
CHARACTER :: c
OPEN(UNIT=fd, FILE="/etc/passwd", ACTION="READ", STATUS = "OLD")
DO
CALL fgetc(fd, c, status)
IF (status /= 0) EXIT
call fput(c)
END DO
CLOSE(UNIT=fd)
END PROGRAM
표준
GNU 확장이에요.
더 알아보기
FGET— stdin에서 스트림 모드로 한 문자 읽기FPUT— stdout에 스트림 모드로 한 문자 쓰기FPUTC— 스트림 모드로 한 문자 쓰기