`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 — 스트림 모드로 한 문자 쓰기