FPUTC — 지정 단위에 한 글자 스트림 출력

FPUTC — 지정 단위에 한 글자 스트림 출력

FPUT가 표준 출력에만 문자를 쓴다면, FPUTC는 내가 고른 파일 단위에 문자를 쓸 수 있게 해줘요. 어떤 단위로 열어 둔 파일에 한 글자씩 연속으로 기록하고 싶을 때 사용합니다.

출처: gfortran 공식 문서 - FPUTC

시그니처

CALL FPUTC(UNIT, C [, STATUS])
STATUS = FPUTC(UNIT, C)

본문

설명(Description)

FPUTC는 일반적인 형식화된 출력을 거치지 않고 스트림 방식으로 단일 문자를 씁니다. 같은 단위에서 스트림 I/O와 일반적인 레코드 중심 I/O(형식화되거나 형식화되지 않은)를 섞어 쓰면 결과가 예측 불가능해지니 주의해야 해요.

이 내장 함수는 서브루틴과 함수 두 형태로 제공되지만, 하나의 프로그램 단위 안에서는 둘 중 하나의 형태만 쓸 수 있어요.

참고로 FPUTC 내장 함수는 g77과의 하위 호환성을 위해 제공돼요. GNU Fortran은 Fortran 2003의 스트림 기능을 제공하므로, 새 코드에서는 향후 이식성을 위해 새 스트림 I/O 기능을 쓰는 걸 고려해야 합니다. Fortran 2003 상태에 대한 자세한 내용은 관련 문서를 참고해요.

분류(Class)

서브루틴, 함수(Subroutine, function)

인자(Arguments)

  • UNIT — 타입은 INTEGER여야 해요.
  • C — 타입은 CHARACTER이어야 하고 기본 kind여야 해요.
  • STATUS — (선택) INTEGER 타입의 상태 플래그예요. 성공 시 0, 파일 끝(end-of-file)에서는 -1, 그 외에는 시스템 특유의 양수 오류 코드를 반환해요.

예제

PROGRAM test_fputc
  CHARACTER(len=10) :: str = "gfortran"
  INTEGER :: fd = 42, i

  OPEN(UNIT = fd, FILE = "out", ACTION = "WRITE", STATUS="NEW")
  DO i = 1, len_trim(str)
    CALL fputc(fd, str(i:i))
  END DO
  CLOSE(fd)
END PROGRAM

단위 42로 파일 "out"을 쓰기 모드로 새로 열고, fputc로 문자열을 한 글자씩 기록하는 예시예요. FPUT와 다른 점은 어느 단위에 쓸지가 첫 인자로 들어간다는 점입니다.

표준(Standard)

GNU 확장(GNU extension)

더 알아보기

FPUT — stdout으로 스트림 방식 단일 문자 출력, FGET — stdin에서 스트림 방식 단일 문자 읽기, FGETC — 스트림 방식 단일 문자 읽기