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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk