Share via


_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