_sopen, _wsopen
Paylaşmak için bir dosya açılır. Bu işlevler daha güvenli sürümlerinin kullanılabilir olduğunu; see _sopen_s, _wsopen_s.
int _sopen(
const char *filename,
int oflag,
int shflag [,
int pmode ]
);
int _wsopen(
const wchar_t *filename,
int oflag,
int shflag [,
int pmode ]
);
Parametreler
filename
Dosya adı.oflag
İzin verilen işlem türü.shflag
İzin verilen paylaşım türü.pmode
İzin ayarı.
Dönüş Değeri
Bu işlevlerden her biri açılan dosya için bir dosya tanımlayıcısını döndürür.
filename Veya oflag olan bir NULL işaretçi veya oflag veya shflag olan değerleri geçerli aralık içinde geçersiz parametre işleyicisi, açıklandığı şekilde çağrılır Parametre doğrulama. Yürütülmesine devam etmek için izin verilmişse, bu işlevler -1 geri dönün ve errno aşağıdaki değerlerden birini.
EACCES
Yol bir dizin veya dosya salt-okunurdur ancak yazma için açık işlem yapılmaya çalışıldı.EEXIST
_O_CREATve _O_EXCL bayrakları belirtilmiş, ancak filename zaten.EINVAL
Geçersiz oflag veya shflag bağımsız değişkeni.EMFILE
Yok daha fazla dosya tanımlayıcıları kullanılabilir.ENOENT
Dosya veya yol bulunamadı.
Bunlar ve diğer dönüş kodları hakkında daha fazla bilgi için bkz: _doserrno, errno, _sys_errlist ve _sys_nerr.
Notlar
_sopen İşlevi tarafından belirtilen dosyayı açar filename tarafından tanımlanan dosya paylaşılan okuma veya yazma, hazırlar ve oflag ve shflag. _wsopengeniş karakter sürümü _sopen; filename bağımsız değişkeni _wsopen bir geniş karakter dizesidir. _wsopenve _sopen 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 |
_sopen |
_sopen |
_wsopen |
Tamsayı deyim oflag bir veya daha fazlasını Fcntl.h dosyasında tanımlanan aşağıdaki 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. Hiçbir etkisi dosyası tarafından belirtilen filename bulunmaktadır. pmode Bağımsız değişken gereklidir _O_CREAT belirtilir._O_CREAT| _O_SHORT_LIVED
Geçici olarak bir dosya oluşturun ve mümkünse için disk temizleme değil. pmode Bağımsız değişken gereklidir _O_CREAT belirtilir._O_CREAT| _O_TEMPORARY
Geçici olarak bir dosya oluşturun; son dosya tanımlayıcısı kapattığınızda dosya silinir. pmode Bağımsız değişken gereklidir _O_CREAT belirtilir._O_CREAT| _O_EXCL
Hata değeri tarafından belirtilen bir dosyaya 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 okuma hem de yazma için 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_TRUNCkullanı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 Ç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 yalnızca biri belirttiğinde, gerekli _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.
_sopenGeç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 |
<io.h> |
<fcntl.h>, <sys/types.h>, <sys/stat.h>, <share.h> |
_wsopen |
<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.
.NET Framework Eşdeğeri
Yoktur. Standart c işlevi çağırmak için kullanmak PInvoke. Daha fazla bilgi için bkz: Platform Çağırma örnekleri.