tmpfile_s
Geçici bir dosya oluşturur. CRT'deki Güvenlik özellikleri bölümünde açıklandığı gibi güvenlik geliştirmeleri içeren bir sürümüdürtmpfile
.
Sözdizimi
errno_t tmpfile_s(
FILE** pFilePtr
);
Parametreler
pFilePtr
Oluşturulan işaretçinin adresini bir akışa depolamak için işaretçinin adresi.
Dönüş değeri
Başarılı olursa 0 değerini, hata durumunda bir hata kodu döndürür.
Hata koşulları
pFilePtr |
Dönüş değeri | İçeriği pFilePtr |
---|---|---|
NULL |
EINVAL |
değiştirilmedi |
Yukarıdaki parametre doğrulama hatası oluşursa, parametre doğrulama bölümünde açıklandığı gibi geçersiz parametre işleyicisi çağrılır. Yürütmenin devam etmesi için izin verilirse, errno
olarak ayarlanır EINVAL
ve dönüş değeri olur EINVAL
.
Açıklamalar
tmpfile_s
işlevi geçici bir dosya oluşturur ve bağımsız değişkende pFilePtr
bu akışa bir işaretçi yerleştirir. Geçici dosya kök dizinde oluşturulur. Kök dışında bir dizinde geçici bir dosya oluşturmak için veya tempnam
ile kullanın.tmpnam_s
fopen
Dosya açılamıyorsa parametresine tmpfile_s
pFilePtr
yazarNULL
. Bu geçici dosya, dosya kapatıldığında, program normal şekilde sonlandırıldığında veya geçerli çalışma dizininin değişmediği varsayılarak çağrıldığında _rmtmp
otomatik olarak silinir. Geçici dosya w+b (ikili okuma/yazma) modunda açılır.
Daha fazlasını TMP_MAX_S
denerseniz hata oluşabilir (bkz. STDIO. H) ile yapılan çağrılar tmpfile_s
.
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.
Gereksinimler
Yordam | Gerekli başlık |
---|---|
tmpfile_s |
<stdio.h> |
Daha fazla uyumluluk bilgisi için bkz . Uyumluluk.
Örnek
Not
Bu örnek, Windows üzerinde çalışmak için yönetici ayrıcalıkları gerektirebilir.
// crt_tmpfile_s.c
// This program uses tmpfile_s to create a
// temporary file, then deletes this file with _rmtmp.
//
#include <stdio.h>
int main( void )
{
FILE *stream;
char tempstring[] = "String to be written";
int i;
errno_t err;
// Create temporary files.
for( i = 1; i <= 3; i++ )
{
err = tmpfile_s(&stream);
if( err )
perror( "Could not open new temporary file\n" );
else
printf( "Temporary file %d was created\n", i );
}
// Remove temporary files.
printf( "%d temporary files deleted\n", _rmtmp() );
}
Temporary file 1 was created
Temporary file 2 was created
Temporary file 3 was created
3 temporary files deleted