_sopen_s, _wsopen_s
Paylaşmak için bir dosya açılır.Bunlar sürümleridir _sopen ve _wsopen açıklandığı gibi güvenlik geliştirmeleri ile crt güvenlik özellikleri.
errno_t _sopen_s(
int* pfh,
const char *filename,
int oflag,
int shflag,
int pmode
);
errno_t _wsopen_s(
int* pfh,
const wchar_t *filename,
int oflag,
int shflag,
int pmode,
);
Parametreler
[Çıkış]pfh
Dosya tanıtıcısı veya bir hata olması durumunda, -1.[in]filename
Dosya adı.[in]oflag
İzin verilen işlem türü.[in]shflag
İzin verilen paylaşım türü.[in]pmode
İzin ayarı.
Dönüş Değeri
Sıfır olmayan bir dönüş değeri, bu durumda bir hata gösterir errno aşağıdaki değerlerden birini ayarlanır.
EACCES
Yol bir dizin veya dosya salt-okunurdur ancak yazma için açık işlem yapılmaya çalışıldı.EEXIST
_O_CREAT ve _O_EXCL bayrakları belirtilmiş, ancak filename zaten.EINVAL
Invalid oflag, shflag, orpmode argument, or pfh or filename was a null pointer.EMFILE
Yok daha fazla dosya tanımlayıcıları kullanılabilir.ENOENT
Dosya veya yol bulunamadı.
İşleve geçersiz bir bağımsız değişken verilmezse, geçersiz parametre işleyicisi, açıklandığı şekilde çağrılır Parametre doğrulama.Yürütülmesine devam etmek için izin verilip verilmediğini errno ayarlamak EINVAL ve EINVAL döndürülür.
Bunlar ve diğer dönüş kodları hakkında daha fazla bilgi için bkz: _doserrno, errno, _sys_errlist ve _sys_nerr.
Bir hata durumunda -1 ile döner pfh (sürece pfh bir null işaretçi).
Notlar
_sopen_s İşlevi tarafından belirtilen dosyayı açar filename tarafından tanımlanan dosya paylaşılan okuma veya yazma, hazırlar ve oflag ve shflag._wsopen_sgeniş karakter sürümü _sopen_s; filename bağımsız değişkeni _wsopen_s bir geniş karakter dizesidir._wsopen_sve _sopen_s 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 |
---|---|---|---|
_tsopen_s |
_sopen_s |
_sopen_s |
_wsopen_s |
Tamsayı deyim oflag Fcntl.h dosyasında tanımlanan bir veya daha fazla bildirim sabitleri birleştirip.Ne zaman iki veya daha fazla sabit form bağımsız değişken oflag, bunlar Bitsel or işlecini () ile birleştirilir | ).
_O_APPEND
Her yazma işlemi önce dosyanın sonuna dosya işaretçisi yeniden konumlandırır._O_BINARY
Bir dosya (untranslated) İkili modda açılır.(Bkz: fopen ikili mod açıklaması.)_O_CREAT
Oluşturur ve yeni dosya yazma için açar.Belirtilen dosya, etkisi filename bulunmaktadır._O_CREAT| _O_SHORT_LIVED
Geçici olarak bir dosya oluşturun ve mümkünse için disk temizleme değil._O_CREAT| _O_TEMPORARY
Geçici olarak bir dosya oluşturun; son dosya tanımlayıcısı kapattığınızda dosya silinir._O_CREAT| _O_EXCL
Dosyası tarafından belirtilen hata değerini verir filename bulunmaktadır.Yalnızca birlikte kullanıldığında geçerlidir _O_CREAT._O_NOINHERIT
Paylaşılan dosya tanımlayıcısı oluşturulmasını engeller._O_RANDOM
Öncelikle rasgele erişim diskten belirtir._O_RDONLY
Bir dosyayı yalnızca okumak için açılır; ile tarif edilemez _O_RDWR veya _O_WRONLY._O_RDWR
Hem okumak ve yazmak için bir dosya açar; ile tarif edilemez _O_RDONLY veya _O_WRONLY._O_SEQUENTIAL
Öncelikle sıralı erişim diskten belirtir._O_TEXT
Bir dosya (çevrilmiş) metin modunda açılır.(Daha fazla bilgi için bkz: metin ve ikili mod dosya g/Ç ve fopen.)_O_TRUNC
Bir dosyayı açar ve uzunluğu sıfır kendisine keser; Dosya yazma izni olmalıdır.Bu bayrak ile belirtemezsiniz _O_RDONLY._O_TRUNC kullanılan _O_CREAT yeni bir dosya oluşturur veya varolan bir dosyayı açar.[!NOT]
_O_TRUNC Bayrağı belirtilen dosyanın içeriğini bozar.
_O_WRONLY
Bir dosya sadece yazmak için açılır; ile tarif edilemez _O_RDONLY veya _O_RDWR._O_U16TEXT
Dosya Unicode utf-16 modunda açın._O_U8TEXT
Dosya Unicode utf-8 modunda açın._O_WTEXT
Dosya Unicode modunda açın.
Dosya erişim modunu belirtmek için ya da belirtmelisiniz _O_RDONLY, _O_RDWR, veya _O_WRONLY.Erişim modu için varsayılan değer yoktur.
_sopen_s Çağrılır _O_WRONLY|_O_APPEND (ekleme modu) ve _O_WTEXT, _O_U16TEXT, veya _O_U8TEXT, ilk çalýþýlýr okuma ve yazma, dosyayı açmak ürün Reçetesi, daha sonra yalnızca yazmak için yeniden açın.Okuma ve yazma hataları için dosyayı açıp, sadece yazmak için dosyayı açın ve varsayılan değeri Unicode modu ayarını kullanın.
Bağımsız değişken shflag Share.h içinde tanımlanan aşağıdaki bildirim sabitlerinden biri oluşan sabit bir ifadedir.
_SH_DENYRW
Okuma ve bir dosyaya yazma erişimi reddeder._SH_DENYWR
Dosyaya yazma erişimini engeller._SH_DENYRD
Bir dosya için okuma erişimi reddeder._SH_DENYNO
İzinleri okuma ve yazma erişimi.
pmode Bağımsız değişkeni, aksine, gerekli her zaman _sopen.Belirtirken _O_CREAT, dosya yoksa, pmode ilk kez yeni dosyayı kapattığınızda, ayarlanmış olan dosyanın izin ayarlarını belirtir.Aksi halde pmode göz ardı edilir.pmodebirini veya her ikisini bildirim sabitleri içeren bir tamsayı ifade _S_IWRITE ve _S_IREAD, SYS\Stat.h içinde tanımlı.Her iki sabitleri verildiğinde, bunlar Bitsel or işleciyle birleştirilir.Anlamını pmode gibidir.
_S_IWRITE
Yazma izni._S_IREAD
Okuma izni._S_IREAD | _S_IWRITE
Okuma ve yazma izni.
Yazma izni verilmemişse, dosya salt-okunurdur.Windows işletim sistemi altında tüm dosyalar okunabilir; salt yazma izni vermek mümkün değildir.Bu nedenle, modları _S_IWRITE ve _S_IREAD | _S_IWRITE eşdeğerdir.
_sopen_sGeçerli dosya izni maske uygulanır pmode izinlerini ayarlamadan önce (bkz: _umask).
Gereksinimler
Yordamı |
Gerekli başlık |
İsteğe bağlı bir üstbilgi |
---|---|---|
_sopen_s |
<io.h> |
<fcntl.h>, <sys/types.h>, <sys/stat.h>, <share.h> |
_wsopen_s |
<io.h> veya <wchar.h> |
<fcntl.h>, <sys/types.h>, <sys/stat.h>, <share.h> |
Daha fazla uyumluluk bilgileri için bkz: Uyumluluk giriş.
Örnek
Örnek için bkz: _locking.