`fputs` 함수

fputs 함수 (fputs)

널 종료 문자열을 그대로 파일에 써야 할 때, 문자를 fputc로 일일이 반복하는 대신 한 번에 써 주는 함수가 fputs예요. 다만 아쉬운 점(또는 특징)이 하나 있는데, 문자열 끝에 개행 문자를 자동으로 붙이지 않아요.

출처: cppreference

본문

함수 원형

<stdio.h>에 정의돼 있어요.

int fputs( const char* str, FILE* stream );                  // (until C99)
int fputs( const char* restrict str, FILE* restrict stream ); // (since C99)

설명 (Explanation)

널 종료 문자열 str의 모든 문자를 fputc를 반복해서 호출하는 것처럼 출력 스트림 stream에 써요.

str의 끝에 있는 종료 널 문자는 쓰지 않아요.

매개변수 (Parameters)

  • str — 쓸 널 종료 문자열
  • stream — 출력 스트림

반환값 (Return value)

성공하면 0 이상의 값을 돌려줘요.

실패하면 EOF를 돌려주고 stream에 오류 표시를 설정해요(ferror() 참고).

주의할 점 (Notes)

관련 함수 puts는 출력 끝에 개행 문자를 추가하는 반면, fputs는 문자열을 그대로 써요. 그래서 파일에 한 줄을 정확히 쓰고 싶을 때는 fputs가 더 예측 가능해요.

구현마다 돌려주는 0 이상의 값이 달라요. 어떤 구현은 마지막으로 쓴 문자를, 어떤 구현은 쓴 문자 수를(문자열이 그보다 길면 INT_MAX), 어떤 구현은 0 같은 상수만 돌려주기도 해요.

예제 (Example)

stdout에 문자열을 쓰고 실패를 검사하는 간단한 예시예요.

#include <stdio.h>

int main(void)
{
    int rc = fputs("Hello World", stdout);
    if (rc == EOF)
       perror("fputs()"); // POSIX requires that errno is set
}

출력:

Hello World

같이 보기 (See also)

  • puts — stdout에 문자열 쓰기
  • fgets — 파일 스트림에서 문자열 가져오기