Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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