Aracılığıyla paylaş


tmpnam_s, _wtmpnam_s

Geçici dosyaları oluşturmak için kullandığınız adlar oluşturun.Bunlar sürümleridir tmpnam ve _wtmpnam açıklandığı gibi güvenlik geliştirmeleri ile crt güvenlik özellikleri.

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

  • [Çıkış]str
    İşaretçi, üretilen ad tutacaktır.

  • [in]sizeInChars
    Karakter arabelleği boyutu.

Dönüş Değeri

Bu işlevlerin ikisi de başarılı olursa 0 ya da bir hata numarası hatası döndürür.

Hata koşulları

str

sizeInChars

Dönüş Değeri

İçeriğistr

NULL

herhangi bir

EINVAL

modifiye edilmemiş

değil NULL (noktaları için geçerli bellek)

çok kısa

ERANGE

modifiye edilmemiş

str Olan NULL, geçersiz parametre işleyicisi, açıklandığı şekilde çağrılır Parametre doğrulama.Yürütülmesine devam etmek için izin verilmişse, bu işlevler kümesi errno için EINVAL ve EINVAL.

Notlar

Bu işlevlerden her biri, var olmayan bir dosyanın adını döndürür.tmpnam_sGeçerli çalışma dizini içinde benzersiz bir ad verir.Unutmayın bir dosya adı öncesi beklemedeki bir ters eğik çizgi ve \fname21 gibi hiçbir yol bilgileriyle olduğunda bu adın geçerli çalışma dizini için geçerli olup olmadığını gösterir.

İçin tmpnam_s, bu dosya adı saklayabilirsiniz str.Tarafından döndürülen dizenin en fazla uzunluğu tmpnam_s olan L_tmpnam_s, STDIO içinde tanımlı.H.str Olan NULL, sonra tmpnam_s sonucu bir iç statik arabellek bırakır.Bu nedenle herhangi bir sonraki çağrılar bu değeri yok.Tarafından oluşturulan ad tmpnam_s bir program tarafından oluşturulan bir dosya adı ve ilk çaðrýdan sonra oluşan tmpnam_s, temel 32 sıralı sayılar dosya uzantısı (.1-.1vvvvvu, ne zaman TMP_MAX_S STDIO içinde.h INT_MAX olur).

tmpnam_sçok baytlı karakter dizileri işletim sisteminden alınan oem kod sayfası uyarınca tanımayı çok baytlı karakter dizesi bağımsız değişkenleri uygun şekilde otomatik olarak yönetir._wtmpnam_sgeniş karakter sürümü tmpnam_s; bağımsız değişken ve dönüş değeri _wtmpnam_s geniş karakter dizeleridir._wtmpnam_sve tmpnam_s dışında aynı şekilde davranır _wtmpnam_s çok baytlı karakter dizeleri işlemez.

C++'da, bu işlevler tarafından şablon aşırı kolaylaştırılmıştır; aşırı arabellek uzunluğu otomatik olarak size baðýmsýz deðiþkeni belirtmek için gereksiz gerçekleştirip.Daha fazla bilgi için bkz. Güvenli şablon aşırı yükleme.

Genel metin yordamı eşlemeleri

TCHAR.H yordamına girildi

_UNICODE & _mbcs tanımlı değil

Tanımlanan _mbcs

Tanımlanan _UNICODE

_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>

Ek uyumluluk bilgileri için bkz: Uyumluluk giriş.

Ö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 );
      }
   }  
}

.NET Framework Eşdeğeri

Yoktur. Standart c işlevi çağırmak için kullanmak PInvoke. Daha fazla bilgi için bkz: Platform Çağırma örnekleri.

Ayrıca bkz.

Başvuru

G/ç

_getmbcp

malloc

_setmbcp

tmpfile_s