Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Geçici dosyalar oluşturmak için kullanabileceğiniz adlar oluşturun. Bu işlevler, CRT'deki tmpnam _wtmpnamGüvenlik özellikleri bölümünde açıklandığı gibi ve sürümleridir.
Sözdizimi
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
Parametreler
str
[out] Oluşturulan adı tutan işaretçi.
sizeInChars
[in] Arabelleğin karakter cinsinden boyutu.
Dönüş değeri
Bu işlevlerin her ikisi de başarılı olursa 0 veya hata durumunda bir hata numarası döndürür.
Hata koşulları
str |
sizeInChars |
Dönüş değeri | İçeriği str |
|---|---|---|---|
NULL |
herhangi bir | EINVAL |
değiştirilmedi |
not NULL (geçerli belleğe işaret eden) |
çok kısa | ERANGE |
değiştirilmedi |
ise str NULL, parametre doğrulamasında açıklandığı gibi geçersiz parametre işleyicisi çağrılır. Yürütmenin devam etmesi için izin verilirse, bu işlevler olarak EINVAL ayarlanır errno ve döndürürEINVAL.
Açıklamalar
Bu işlevlerin her biri, şu anda mevcut olmayan bir dosyanın adını döndürür. tmpnam_s tarafından GetTempPathWdöndürülen belirtilen Windows geçici dizininde benzersiz bir ad döndürür. Bir dosya adı ters eğik çizgiyle eklendiğinde ve gibi \fname21yol bilgisi olmadığında, adın geçerli çalışma dizini için geçerli olduğunu gösterir.
için tmpnam_s, oluşturulan bu dosya adını içinde strdepolayabilirsiniz. tarafından tmpnam_s döndürülen bir dizenin uzunluk üst sınırı, STDIO.H içinde tanımlanmıştır L_tmpnam_s. ise str NULLtmpnam_s, sonucu iç statik arabellekte bırakır. Böylece sonraki çağrılar bu değeri yok eder. tarafından oluşturulan ad, program tarafından tmpnam_s oluşturulan bir dosya adından ve ilk çağrısından tmpnam_ssonra 32 tabanında (.1-.1vvvvvu) TMP_MAX_S sıralı numaraların dosya uzantısından oluşur. H ise INT_MAX).
tmpnam_s çok baytlı dize bağımsız değişkenlerini uygun şekilde otomatik olarak işler ve işletim sisteminden alınan OEM kod sayfasına göre çok baytlı karakter dizilerini tanır. _wtmpnam_s , öğesinin tmpnam_sgeniş karakterli bir sürümüdür; bağımsız değişkeni ve dönüş değeri _wtmpnam_s geniş karakterli dizelerdir. _wtmpnam_s ve tmpnam_s çok baytlı dizeleri işlememesi dışında _wtmpnam_s aynı şekilde davranır.
C++'ta bu işlevlerin kullanılması şablon aşırı yüklemeleriyle basitleştirilir; aşırı yüklemeler arabellek uzunluğunu otomatik olarak çıkararak boyut bağımsız değişkeni belirtme gereksinimini ortadan kaldırır. Daha fazla bilgi için bkz . Güvenli şablon aşırı yüklemeleri.
Varsayılan olarak, bu işlevin genel durumunun kapsamı uygulama olarak belirlenmiştir. Bu davranışı değiştirmek için bkz. CRT'de Genel durum.
Genel metin yordamı eşlemeleri
| TCHAR.H yordamı | _UNICODE ve _MBCS tanımlanmadı |
_MBCS tanımlanan |
_UNICODE tanımlanan |
|---|---|---|---|
_ttmpnam_s |
tmpnam_s |
tmpnam_s |
_wtmpnam_s |
Gereksinimler
| Yordam | Gerekli başlık |
|---|---|
tmpnam_s |
<stdio.h> |
_wtmpnam_s |
<stdio.h> veya <wchar.h> |
Daha fazla uyumluluk bilgisi için bkz . Uyumluluk.
Örnek
// 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 );
}
}
}
C:\Users\LocalUser\AppData\Local\Temp\u19q8.0 is safe to use as a temporary file.
C:\Users\LocalUser\AppData\Local\Temp\u19q8.1 is safe to use as a temporary file.
C:\Users\LocalUser\AppData\Local\Temp\u19q8.2 is safe to use as a temporary file.
C:\Users\LocalUser\AppData\Local\Temp\u19q8.3 is safe to use as a temporary file.
C:\Users\LocalUser\AppData\Local\Temp\u19q8.4 is safe to use as a temporary file.
C:\Users\LocalUser\AppData\Local\Temp\u19q8.5 is safe to use as a temporary file.
C:\Users\LocalUser\AppData\Local\Temp\u19q8.6 is safe to use as a temporary file.
C:\Users\LocalUser\AppData\Local\Temp\u19q8.7 is safe to use as a temporary file.
C:\Users\LocalUser\AppData\Local\Temp\u19q8.8 is safe to use as a temporary file.
C:\Users\LocalUser\AppData\Local\Temp\u19q8.9 is safe to use as a temporary file.
C:\Users\LocalUser\AppData\Local\Temp\u19q8.a is safe to use as a temporary file.
C:\Users\LocalUser\AppData\Local\Temp\u19q8.b is safe to use as a temporary file.
C:\Users\LocalUser\AppData\Local\Temp\u19q8.c is safe to use as a temporary file.
C:\Users\LocalUser\AppData\Local\Temp\u19q8.d is safe to use as a temporary file.
C:\Users\LocalUser\AppData\Local\Temp\u19q8.e is safe to use as a temporary file.