Bagikan melalui


tmpfile_s

Membuat file sementara. Ini adalah versi tmpfile dengan peningkatan keamanan seperti yang dijelaskan dalam Fitur keamanan di CRT.

Sintaks

errno_t tmpfile_s(
   FILE** pFilePtr
);

Parameter

pFilePtr
Alamat penunjuk untuk menyimpan alamat penunjuk yang dihasilkan ke aliran.

Nilai hasil

Mengembalikan 0 jika berhasil, kode kesalahan pada kegagalan.

Kondisi kesalahan

pFilePtr Nilai hasil Isi dari pFilePtr
NULL EINVAL tidak diubah

Jika kesalahan validasi parameter di atas terjadi, handler parameter yang tidak valid dipanggil, seperti yang dijelaskan dalam Validasi parameter. Jika eksekusi diizinkan untuk melanjutkan, errno diatur ke EINVAL, dan nilai yang dikembalikan adalah EINVAL.

Keterangan

Fungsi ini tmpfile_s membuat file sementara dan menempatkan penunjuk ke aliran tersebut pFilePtr dalam argumen. File sementara dibuat di direktori akar. Untuk membuat file sementara di direktori selain root, gunakan tmpnam_s atau tempnam dengan fopen.

Jika file tidak dapat dibuka, tmpfile_s tulis NULL ke pFilePtr parameter . File sementara ini secara otomatis dihapus ketika file ditutup, ketika program berakhir secara normal, atau ketika _rmtmp dipanggil, dengan asumsi bahwa direktori kerja saat ini tidak berubah. File sementara dibuka dalam mode w+b (baca/tulis biner).

Kegagalan dapat terjadi jika Anda mencoba lebih dari TMP_MAX_S (lihat STDIO. H) memanggil dengan tmpfile_s.

Secara default, status global fungsi ini dicakup ke aplikasi. Untuk mengubah perilaku ini, lihat Status global di CRT.

Persyaratan

Rutin Header yang diperlukan
tmpfile_s <stdio.h>

Untuk informasi kompatibilitas selengkapnya, lihat Kompatibilitas.

Contoh

Catatan

Contoh ini mungkin memerlukan hak administratif untuk dijalankan pada Windows.

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

Baca juga

Streaming I/O
_rmtmp
_tempnam, _wtempnam, tmpnam, _wtmpnam