Aracılığıyla paylaş


_creat, _wcreat

Yeni bir dosya oluşturur. _creatve _wcreat kullanım dışı bırakıldı; bunun yerine kullanın_sopen_s_wsopen_s.

Sözdizimi

int _creat(
   const char *filename,
   int pmode
);
int _wcreat(
   const wchar_t *filename,
   int pmode
);

Parametreler

filename
Yeni dosyanın adı.

pmode
İzin ayarı.

Dönüş değeri

Bu işlevler başarılı olursa, oluşturulan dosyaya bir dosya tanımlayıcısı döndürür. Aksi takdirde, işlevler -1 döndürür ve aşağıdaki tabloda gösterildiği gibi ayarlanır errno .

errno Değer Tanım
EACCES filename var olan bir salt okunur dosyayı belirtir veya dosya yerine bir dizin belirtir.
EMFILE Başka dosya tanımlayıcısı yok.
ENOENT Belirtilen dosya bulunamadı.

ise filenameNULL, bu işlevler Parametre doğrulama bölümünde açıklandığı gibi geçersiz parametre işleyicisini çağırır. Yürütmenin devam etmesi için izin verilirse, bu işlevler olarak EINVAL ayarlanır errno ve -1 döndürür.

Bunlar ve diğer iade kodları hakkında daha fazla bilgi için bkz. errno, _doserrno, _sys_errlistve _sys_nerr.

Açıklamalar

_creat İşlev yeni bir dosya oluşturur veya var olan bir dosyayı açar ve keser. _wcreat , öğesinin _creatgeniş karakterli bir sürümüdür; filename bağımsız değişkeni _wcreat geniş karakterli bir dizedir. _wcreat ve _creat aksi takdirde aynı şekilde davran.

Varsayılan olarak, bu işlevin genel durumunun kapsamı uygulama olarak belirlenmiştir. Bunu değiştirmek için bkz . CRT'de Genel durum.

Genel metin yordamı eşlemeleri

Tchar.h yordamı _UNICODE ve _MBCS tanımlanmadı _MBCS Tanımlanan _UNICODE Tanımlanan
_tcreat _creat _creat _wcreat

tarafından filename belirtilen dosya yoksa, verilen izin ayarıyla yeni bir dosya oluşturulur ve yazmak üzere açılır. Dosya zaten varsa ve izin ayarı yazmaya izin veriyorsa, _creat dosyayı 0 uzunluğuna kadar keserek önceki içeriği yok eder ve yazmak üzere açar. İzin ayarı, pmodeyalnızca yeni oluşturulan dosyalar için geçerlidir. Yeni dosya, ilk kez kapatıldıktan sonra belirtilen izin ayarını alır. Tamsayı ifadesi pmode , SYS\Stat.h içinde tanımlanan bildirim sabitlerinden _S_IWRITE_S_IREADbirini veya her ikisini de içerir. Her iki sabit de verildiğinde bit düzeyinde veya işleciyle ( | ) birleştirilir. pmode parametresi aşağıdaki değerlerden birine ayarlanır.

Değer Açıklama
_S_IWRITE Yazma izni verilir.
_S_IREAD Okuma izni verilir.
_S_IREAD | _S_IWRITE Okuma ve yazma izin verilir.

Yazma izni verilmezse, dosya salt okunurdur. Tüm dosyalar her zaman okunabilir; yalnızca yazma izni vermek mümkün değildir. ve modları _S_IWRITE_S_IREAD | _S_IWRITE daha sonra eşdeğerdir. kullanılarak _creat açılan dosyalar her zaman ile uyumluluk modunda açılır (bkz _sopen. ) ile _SH_DENYNO.

_creat izinleri ayarlamadan önce geçerli dosya izni maskesini pmode uygular (bkz _umask. ). _creat , öncelikle önceki kitaplıklarla uyumluluk için sağlanır. parametresinde oflag ve _O_TRUNC ile _O_CREAT çağrısı_open, ile eşdeğerdir _creat ve yeni kod için tercih edilir.

Gereksinimler

Yordam Gerekli başlık İsteğe bağlı üst bilgi
_creat <io.h> <sys/types.h>, <sys/stat.h>, <errno.h>
_wcreat <io.h> veya <wchar.h> <sys/types.h>, <sys/stat.h>, <errno.h>

Daha fazla uyumluluk bilgisi için bkz . Uyumluluk.

Örnek

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

Ayrıca bkz.

Alt düzey G/Ç
_chmod, _wchmod
_chsize
_close
_dup, _dup2
_open, _wopen
_sopen, _wsopen
_umask