_tempnam, _wtempnam, tmpnam, _wtmpnam
임시 파일을 만들 수 있습니다 이름을 생성 합니다.보다 안전한 버전의 이러한 함수 중 일부를 사용할 수 있습니다. see tmpnam_s, _wtmpnam_s.
char *_tempnam(
const char *dir,
const char *prefix
);
wchar_t *_wtempnam(
const wchar_t *dir,
const wchar_t *prefix
);
char *tmpnam(
char *str
);
wchar_t *_wtmpnam(
wchar_t *str
);
매개 변수
prefix
전 보류 된 이름으로 반환 되는 문자열 _tempnam.dir
TMP 환경 변수 또는 TMP 디렉터리를 사용할 수 없습니다 하는 경우 파일 이름에 사용 되는 경로입니다.str
포인터를 기본 이름 저장 하며,이 함수에서 반환 된 이름에 동일 하 게 됩니다.이 생성 된 이름을 저장 하는 편리한 방법입니다.
반환 값
이러한 각 함수 생성 된 이름에 대 한 포인터를 반환 또는 NULL 오류가 있으면 됩니다.실패 하면 시도 하는 경우 발생할 수 있습니다 이상 TMP_MAX (STDIO을 참조 하십시오.H) 호출으로 tmpnam 또는 사용 하는 경우 _tempnam및 TMP 환경 변수에서에서 지정한 디렉터리 이름이 잘못 되어 있는 dir 매개 변수.
[!참고]
반환 된 포인터 tmpnam 및 _wtmpnam 내부 정적 버퍼에 가리킵니다.사용할 수 있는 포인터 할당을 호출할 수 없습니다.free에 대 한 할당 포인터 호출 해야 _tempnam 및 _wtempnam.
설명
이러한 각 함수는 현재 존재 하지 않는 파일의 이름을 반환 합니다.tmpnam현재 작업 디렉터리에서 고유 이름을 반환 하 고 _tempnam 현재가 아닌 다른 디렉터리에 고유한 이름을 생성 하는 수 있습니다.파일 이름에 백슬래시 및 경로 정보, \fname21, 등 전 보류 된 때이 이름은 현재 작업 디렉터리에 대 한 잘못입니다 것을 참고.
에 대 한 tmpnam,이 생성 된 파일 이름으로 저장할 수 있습니다 str.경우 str 입니다 NULL, 다음 tmpnam 결과 내부 정적 버퍼에 남겨 둡니다.따라서이 값 호출을 파괴 하십시오.생성 된 이름 tmpnam 의 프로그램에서 생성 된 파일 이름을 한 후 처음 호출할 때 구성 됩니다 tmpnam, 파일 확장명의 기본 32에 일련 번호 (.1-.vvu 때 TMP_MAX STDIO에.H는 32, 767입니다).
_tempnam다음 규칙에 따라 선택한 디렉터리에 고유한 파일 이름을 생성 합니다.
TMP 환경 변수가 정의 되 고 유효한 디렉터리 이름으로 설정 하는 경우 TMP에 의해 지정 된 디렉터리에 대 한 고유한 파일 이름이 생성 됩니다.
TMP 환경 변수가 정의 되지 않은 경우 또는 존재 하지 않는 디렉터리의 이름으로 설정 되어 있으면 _tempnam 사용 하 여 dir 매개 변수를이 생성 됩니다 고유 이름 경로와.
TMP 환경 변수가 정의 되지 않은 경우 또는 존재 하지 않는 디렉터리의 이름으로 설정 되어 있으면 한 경우 dir 하나는 NULL 또는 존재 하지 않는 디렉터리의 이름으로 설정 _tempnam 는 현재 작업 디렉터리 고유 이름을 생성 하려면 사용 합니다.현재 경우 두 TMP 및 dir 존재 하지 않는 디렉터리 이름을 지정은 _tempnam 함수 호출을 사용할 수 없습니다.
반환 되는 이름 _tempnam 의 연결 됩니다 prefix 및 일련 번호를 지정한 디렉터리에 고유한 파일 이름을 만들려면 결합 됩니다._tempnam없는 확장명을 가진 파일 이름을 생성 합니다._tempnam사용 하 여 malloc ; 파일 이름에 대 한 공간을 할당 하려면 프로그램은 더 이상 필요할 때이 공간을 확보에 대 한 책임이 없습니다.
_tempnam및 tmpnam 자동으로 운영 체제에서 얻은 핸들 멀티 바이트 문자 문자열 인수를 적절 하 게 OEM 코드 페이지에 따라 멀티 바이트 문자 시퀀스를 인식 합니다._wtempnam와이드 문자 버전입니다 _tempnam. 인수 및 반환 값이 _wtempnam 와이드 문자 문자열입니다._wtempnam및 _tempnam 동일 하 게 동작 _wtempnam 멀티 바이트 문자 문자열을 처리 하지 않습니다._wtmpnam와이드 문자 버전입니다 tmpnam. 인수와 반환 값을 _wtmpnam 와이드 문자 문자열입니다._wtmpnam및 tmpnam 동일 하 게 동작 _wtmpnam 멀티 바이트 문자 문자열을 처리 하지 않습니다.
경우 _DEBUG 및 _CRTDBG_MAP_ALLOC 정의 된 _tempnam 및 _wtempnam 에 대 한 호출에 의해 대체 됩니다 _tempnam_dbg 및 _wtempnam_dbg.
일반 텍스트 루틴 매핑
TCHAR입니다.H 루틴 |
_UNICODE 및 _Mbcs가 정의 되지 않았습니다. |
_Mbcs가 정의 |
_Unicode가 정의 |
---|---|---|---|
_ttmpnam |
tmpnam |
tmpnam |
_wtmpnam |
_ttempnam |
_tempnam |
_tempnam |
_wtempnam |
요구 사항
루틴 |
필수 헤더 |
---|---|
_tempnam |
<stdio.h> |
_wtempnam, _wtmpnam |
<stdio.h> 또는 <wchar.h> |
tmpnam |
<stdio.h> |
추가 호환성 정보를 참조 하십시오. 호환성 소개에서 합니다.
예제
// crt_tempnam.c
// compile with: /W3
// This program uses tmpnam to create a unique filename in the
// current working directory, then uses _tempnam to create
// a unique filename with a prefix of stq.
#include <stdio.h>
#include <stdlib.h>
int main( void )
{
char* name1 = NULL;
char* name2 = NULL;
// Create a temporary filename for the current working directory:
if( ( name1 = tmpnam( NULL ) ) != NULL ) // C4996
// Note: tmpnam is deprecated; consider using tmpnam_s instead
printf( "%s is safe to use as a temporary file.\n", name1 );
else
printf( "Cannot create a unique filename\n" );
// Create a temporary filename in temporary directory with the
// prefix "stq". The actual destination directory may vary
// depending on the state of the TMP environment variable and
// the global variable P_tmpdir.
if( ( name2 = _tempnam( "c:\\tmp", "stq" ) ) != NULL )
printf( "%s is safe to use as a temporary file.\n", name2 );
else
printf( "Cannot create a unique filename\n" );
// When name2 is no longer needed :
if(name2)
free(name2);
}
해당 .NET Framework 항목
해당 사항 없음. 표준 C 함수를 호출할 수 있습니다 PInvoke. 자세한 내용은 플랫폼 호출 예제.