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. 자세한 내용은 플랫폼 호출 예제.