FPUTC — 지정 단위에 한 글자 스트림 출력
FPUTC — 지정 단위에 한 글자 스트림 출력
FPUT가 표준 출력에만 문자를 쓴다면, 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 — 스트림 방식 단일 문자 읽기