_creat, _wcreat
Yeni bir dosya oluşturur._creatve _wcreat kaldırılmıştır; kullanmak _sopen_s, _wsopen_s yerine.
int _creat(
const char *filename,
int pmode
);
int _wcreat(
const wchar_t *filename,
int pmode
);
Parametreler
filename
Yeni dosya adı.pmode
İzin ayarı.
Dönüş Değeri
Bu işlevler, başarılı olursa, dosya tanımlayıcısı oluşturulan dosyasına dönün.Aksi takdirde –1 işlevleri döndürür ve errno aşağıdaki tabloda gösterildiği gibi.
errnoayarı |
Description |
---|---|
EACCES |
filenameVarolan bir salt okunur dosya veya bir dosya yerine bir dizin belirtir. |
EMFILE |
Daha fazla hiçbir dosya tanımlayıcıları vardır. |
ENOENT |
Belirtilen dosya bulunamadı. |
filename Null, bu işlevler açıklandığı gibi geçersiz bir parametre işleyicisi çağırmak Parametre doğrulama.Yürütülmesine devam etmek için izin verilmişse, bu işlevler kümesi errno için EINVAL ve -1 döndürür.
Bunlar ve diğer dönüş kodları hakkında daha fazla bilgi için bkz: _doserrno, errno, _sys_errlist ve _sys_nerr.
Notlar
_creat İşlevi yeni bir dosya oluşturur veya açar ve varolan bir keser._wcreatgeniş karakter sürümü _creat; filename bağımsız değişkeni _wcreat bir geniş karakter dizesidir._wcreatve _creat Aksi takdirde aynı şekilde davranır.
Genel metin yordamı eşlemeleri
Tchar.h yordamına girildi |
_UNICODE ve _mbcs tanımlı değil |
Tanımlanan _mbcs |
Tanımlanan _UNICODE |
---|---|---|---|
_tcreat |
_creat |
_creat |
_wcreat |
Belirtilen dosya, filename yok, yeni bir dosya ile verilen izin ayarını oluşturulur ve yazma için açılan.Dosya zaten varsa ve yazma, onun izni ayarı sağlar _creat önceki içeriği yok edip uzunluğu 0, dosyaya keser ve yazmak için açılır.İzin ayarı pmode, yalnızca yeni oluşturulan dosyalar için geçerlidir.İlk kez kapatıldıktan sonra yeni dosyayı belirtilen izin ayarını alır.Tamsayı deyim pmode birini veya her ikisini bildirim sabitleri içerir _S_IWRITE ve _S_IREAD, SYS\Stat.h içinde tanımlı.Her iki sabitleri verildiğinde, bunlar Bitsel katılmış OR işlecini ()|).pmode Parametre aşağıdaki değerlerden birini ayarlanır.
Value |
Tanım |
---|---|
_S_IWRITE |
Yazma izni. |
_S_IREAD |
Okuma izni. |
_S_IREAD | _S_IWRITE |
Okuma ve yazma izni. |
Yazma izni verilmemişse, dosya salt-okunurdur.Tüm dosyaları her zaman okunabilir; salt yazma izni vermek imkansızdır.Modları _S_IWRITE ve _S_IREAD| _S_IWRITE sonra eşdeğerdir.Dosyaları kullanarak açılan _creat her zaman uyumluluk modunda açılır (bkz: _sopen) ile _SH_DENYNO.
_creatGeçerli dosya izni maske uygulanır pmode izinlerini ayarlamadan önce (bkz: _umask)._creatöncelikle önceki kitaplıkları ile uyumluluk için sağlanır.Çağrı _open ile _O_CREAT ve _O_TRUNC , oflag parametresi için eşdeğer _creat ve yeni kodu için tercih edilir.
Gereksinimler
Yordamı |
Gerekli başlık |
İsteğe bağlı bir üstbilgi |
---|---|---|
_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 bilgileri için bkz: Uyumluluk giriş.
Ö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 );
}
}