Aracılığıyla paylaş


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

Ayrıca bkz.

Başvuru

Alt düzey g/Ç

_close

_creat, _wcreat

fopen, _wfopen

_fsopen, _wfsopen

_open, _wopen