ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • C/C++ sprintf(3), snprintf(3)
    C,C++ & Linux 2020. 5. 22. 14:16
    728x90

    함수 기능

    문자열 배열에 형식에 맞춘 문자열을 출력해주는 함수입니다.

    printf 와 유사하지만 출력의 대상이 파일이 아니라 배열인 것이 포인트입니다.

     

    snprintf() 함수는 sprintf() 함수와 유사하지만 버퍼 크기를 고려하여 최대로 출력가능한 문자의 길이에 제한을 둡니다.

    따라서 버퍼 오버플로우에 더 안전합니다.

     

    함수 원형

    #include <stdio.h>
    int sprintf(char *buf, const char *format, ...);
    int snprintf(char *buf, size_t size, const char *format, ...);

     

    매개변수

    buf

    출력한 문자열이 들어갈 배열

     

    format

    형식 지정자

     

    ...

    형식 지정자에 들어갈 변수들 리스트

     

    size

    출력할 수 있는 최대 글자 수 제한

    일반적으로 버퍼의 크기로 지정합니다.

    반환값

    성공 시 출력된 문자의 길이를 리턴

    에러 시 음의 정수를 리턴

    예제

    #include <stdio.h>
    #include <stdlib.h>
    #include <unistd.h>
    
    
    int main(int argc, char *argv[]) {
        char buf[BUFSIZ];
    
        sprintf(buf, "%d", 123);
        printf("%s\n", buf);
        exit(0);
    }
    

     

    결과

     

     

     

     

     

     

     

     

     

     

     

    리눅스시스템프로그래밍 저자 : 홍지만
    https://book.naver.com/bookdb/book_detail.nhn?bid=14623672

    책에 기술된 예제 프로그램입니다. 책 내부에는 훨씬 더 많은 자료가 있습니다. (개인적으로 좋았습니다.)

    'C,C++ & Linux' 카테고리의 다른 글

    C/C++ fileno(3)  (0) 2020.05.22
    C/C++ scanf(3), fscanf(3), sscanf(3)  (0) 2020.05.22
    C/C++ printf(3), fprintf(3)  (0) 2020.05.22
    C/C++ fgetpos(3), fsetpos(3)  (0) 2020.05.22
    C/C++ rewind(3)  (0) 2020.05.22

    댓글

Designed by Tistory.