다음을 통해 공유


tmpnam_s, _wtmpnam_s

임시 파일을 만들 수 있습니다 이름을 생성 합니다.이러한 버전의 있습니다 tmpnam 및 _wtmpnam 와 보안 기능 향상에 설명 된 대로 CRT의 보안 기능.

errno_t tmpnam_s(
   char * str,
   size_t sizeInChars 
);
errno_t _wtmpnam_s(
   wchar_t *str,
   size_t sizeInChars 
);
template <size_t size>
errno_t tmpnam_s(
   char (&str)[size]
); // C++ only
template <size_t size>
errno_t _wtmpnam_s(
   wchar_t (&str)[size]
); // C++ only

매개 변수

  • [out] str
    생성 된 이름을 보유할 포인터입니다.

  • [in] sizeInChars
    문자 버퍼의 크기입니다.

반환 값

이러한 함수 오류 번호 또는 성공한 경우 0을 반환 합니다.

오류 조건

str

sizeInChars

반환 값

내용str

NULL

모든

EINVAL

수정 되지 않음

않은 NULL (올바른 메모리를 가리키는)

너무 짧습니다

ERANGE

수정 되지 않음

경우 str 입니다 NULL, 설명에 따라 잘못 된 매개 변수 처리기가 호출 매개 변수 유효성 검사.실행을 계속 수 있으면 이러한 함수를 설정 errno 에 EINVAL 를 반환 하 고 EINVAL.

설명

이러한 각 함수는 현재 존재 하지 않는 파일의 이름을 반환 합니다.tmpnam_s현재 작업 디렉터리에서 고유 이름을 반환합니다.파일 이름에 백슬래시 및 경로 정보, \fname21, 등 전 보류 된 때이 이름은 현재 작업 디렉터리에 대 한 잘못입니다 것을 참고.

에 대 한 tmpnam_s,이 생성 된 파일 이름으로 저장할 수 있습니다 str.반환 되는 문자열의 최대 길이 tmpnam_s 입니다 L_tmpnam_s, STDIO에 정의 된.H.경우 str 입니다 NULL, 다음 tmpnam_s 결과 내부 정적 버퍼에 남겨 둡니다.따라서이 값 호출을 파괴 하십시오.생성 된 이름 tmpnam_s 의 프로그램에서 생성 된 파일 이름을 한 후 처음 호출할 때 구성 됩니다 tmpnam_s, 파일 확장명의 기본 32에 일련 번호 (.1-.1vvvvvu 때 TMP_MAX_S STDIO에.H INT_MAX입니다).

tmpnam_s자동으로 얻은 운영 체제의 OEM 코드 페이지에 따라 멀티 바이트 문자 시퀀스를 인식 합니다. 멀티 바이트 문자 문자열 인수를 적절 하 게 처리 합니다._wtmpnam_s와이드 문자 버전입니다 tmpnam_s. 인수와 반환 값을 _wtmpnam_s 와이드 문자 문자열입니다._wtmpnam_s및 tmpnam_s 동일 하 게 동작 _wtmpnam_s 멀티 바이트 문자 문자열을 처리 하지 않습니다.

C + +에서이 함수를 사용 하 여 템플릿 오버 로드에 단순화 됩니다. 오버 버퍼 길이 size 인수를 지정 하지 않아도 자동으로 유추할 수 있습니다.자세한 내용은 보안 템플릿 오버 로드를 참조하십시오.

일반 텍스트 루틴 매핑

TCHAR입니다.H 루틴

_UNICODE 및 _Mbcs가 정의 되지 않았습니다.

_Mbcs가 정의

_Unicode가 정의

_ttmpnam_s

tmpnam_s

tmpnam_s

_wtmpnam_s

요구 사항

루틴

필수 헤더

tmpnam_s

<stdio.h>

_wtmpnam_s

<stdio.h> 또는 <wchar.h>

추가 호환성 정보를 참조 하십시오. 호환성 소개에서 합니다.

예제

// crt_tmpnam_s.c
// This program uses tmpnam_s to create a unique filename in the
// current working directory. 
//

#include <stdio.h>
#include <stdlib.h>

int main( void )
{   
   char name1[L_tmpnam_s];
   errno_t err;
   int i;

   for (i = 0; i < 15; i++)
   {
      err = tmpnam_s( name1, L_tmpnam_s );
      if (err)
      {
         printf("Error occurred creating unique filename.\n");
         exit(1);
      }
      else
      {
         printf( "%s is safe to use as a temporary file.\n", name1 );
      }
   }  
}

해당 .NET Framework 항목

해당 사항 없음. 표준 C 함수를 호출할 수 있습니다 PInvoke. 자세한 내용은 플랫폼 호출 예제.

참고 항목

참조

스트림 I/O

_getmbcp

malloc

_setmbcp

tmpfile_s