tmpnam_s, _wtmpnam_s

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.

Ayrıca bkz.

Akış G/Ç
_getmbcp
malloc
_setmbcp
tmpfile_s