_creat
, _wcreat
Membuat file baru. _creat
dan _wcreat
telah tidak digunakan lagi; gunakan _sopen_s
, _wsopen_s
sebagai gantinya.
Sintaks
int _creat(
const char *filename,
int pmode
);
int _wcreat(
const wchar_t *filename,
int pmode
);
Parameter
filename
Nama file baru.
pmode
Pengaturan izin.
Nilai hasil
Fungsi-fungsi ini, jika berhasil, mengembalikan pendeskripsi file ke file yang dibuat. Jika tidak, fungsi mengembalikan -1 dan mengatur errno
seperti yang ditunjukkan dalam tabel berikut.
errno nilai |
Deskripsi |
---|---|
EACCES |
filename menentukan file baca-saja yang ada atau menentukan direktori alih-alih file. |
EMFILE |
Tidak ada lagi deskriptor file yang tersedia. |
ENOENT |
File yang ditentukan tidak dapat ditemukan. |
Jika filename
adalah NULL
, fungsi ini memanggil handler parameter yang tidak valid, seperti yang dijelaskan dalam Validasi parameter. Jika eksekusi diizinkan untuk melanjutkan, fungsi-fungsi ini diatur errno
ke EINVAL
dan mengembalikan -1.
Untuk informasi selengkapnya tentang kode pengembalian ini dan lainnya, lihat errno
, , _doserrno
_sys_errlist
, dan _sys_nerr
.
Keterangan
Fungsi ini _creat
membuat file baru atau membuka dan memotong file yang sudah ada. _wcreat
adalah versi karakter luas dari _creat
; filename
argumen ke _wcreat
adalah string karakter lebar. _wcreat
dan _creat
berulah secara identik jika tidak.
Secara default, status global fungsi ini dicakup ke aplikasi. Untuk mengubahnya, lihat Status global di CRT.
Pemetaan rutin teks generik
Rutinitas Tchar.h | _UNICODE dan _MBCS tidak ditentukan |
_MBCS Didefinisikan |
_UNICODE Didefinisikan |
---|---|---|---|
_tcreat |
_creat |
_creat |
_wcreat |
Jika file yang ditentukan oleh filename
tidak ada, file baru dibuat dengan pengaturan izin yang diberikan dan dibuka untuk ditulis. Jika file sudah ada dan pengaturan izinnya memungkinkan penulisan, _creat
memotong file ke panjang 0, menghancurkan konten sebelumnya, dan membukanya untuk ditulis. Pengaturan izin, pmode
, hanya berlaku untuk file yang baru dibuat. File baru menerima pengaturan izin yang ditentukan setelah ditutup untuk pertama kalinya. Ekspresi pmode
bilangan bulat berisi satu atau kedua konstanta _S_IWRITE
manifes dan _S_IREAD
, yang ditentukan dalam SYS\Stat.h. Ketika kedua konstanta diberikan, konstanta tersebut digabungkan dengan bitwise atau operator ( |
). Parameter pmode
diatur ke salah satu nilai berikut.
Nilai | Devinisi |
---|---|
_S_IWRITE |
Penulisan diizinkan. |
_S_IREAD |
Membaca diizinkan. |
_S_IREAD | _S_IWRITE |
Membaca dan menulis diizinkan. |
Jika izin tulis tidak diberikan, file bersifat baca-saja. Semua file selalu dapat dibaca; tidak mungkin untuk memberikan izin tulis-saja. Mode _S_IWRITE
dan _S_IREAD | _S_IWRITE
kemudian setara. File yang dibuka menggunakan _creat
selalu dibuka dalam mode kompatibilitas (lihat _sopen
) dengan _SH_DENYNO
.
_creat
menerapkan masker izin file saat ini sebelum pmode
mengatur izin (lihat _umask
). _creat
disediakan terutama untuk kompatibilitas dengan pustaka sebelumnya. Panggilan ke _open
dengan dan _O_TRUNC
dalam oflag
parameter setara _creat
dengan _O_CREAT
dan lebih disukai untuk kode baru.
Persyaratan
Rutin | Header yang diperlukan | Header opsional |
---|---|---|
_creat |
<io.h> | <sys/type.h>, <sys/stat.h>, <errno.h> |
_wcreat |
<io.h> atau <wchar.h> | <sys/type.h>, <sys/stat.h>, <errno.h> |
Untuk informasi kompatibilitas selengkapnya, lihat Kompatibilitas.
Contoh
// crt_creat.c
// compile with: /W3
// This program uses _creat to create
// the file (or truncate the existing file)
// named data and open it for writing.
#include <sys/types.h>
#include <sys/stat.h>
#include <io.h>
#include <stdio.h>
#include <stdlib.h>
int main( void )
{
int fh;
fh = _creat( "data", _S_IREAD | _S_IWRITE ); // C4996
// Note: _creat is deprecated; use _sopen_s instead
if( fh == -1 )
perror( "Couldn't create data file" );
else
{
printf( "Created data file.\n" );
_close( fh );
}
}
Created data file.
Baca juga
I/O tingkat rendah
_chmod
, _wchmod
_chsize
_close
_dup
, _dup2
_open
, _wopen
_sopen
, _wsopen
_umask
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