Aracılığıyla paylaş


_sopen, _wsopen

Bir dosya paylaşımı için açılır.Bu işlevler daha güvenli sürümleri yüklenebilir — bakın _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
    İzni ayarı.

Dönüş Değeri

Bu işlevlerin her açılmış dosyası için bir dosya tanımlayıcıyı döndürür.

Varsa filename veya oflag olan bir NULL işaretçisi veya oflag veya shflag olan değerlerin geçerli bir aralık içinde geçersiz parametre işleyici, açıklandığı gibi çağrılmaz Parametre Doğrulama.Devam etmek için yürütme izin verilirse, bu işlevler -1 döndürür ve errno aşağıdaki değerlerden birini.

  • EACCES
    Belirtilen yol bir dizin veya dosya salt okunur ancak yazma için açık işlem yapılmaya çalışıldı.

  • EEXIST
    _O_CREATve _O_EXCL bayrakları belirtildi, ancak filename zaten mevcut.

  • EINVAL
    Geçersiz oflag veya shflag bağımsız değişkeni.

  • EMFILE
    Daha fazla hiçbir dosya tanımlayıcıları kullanılabilir.

  • ENOENT
    Dosya veya yolu bulunamadı.

Bu ve diğer dönüş kodları hakkında daha fazla bilgi için bkz: _doserrno, Hata No, _sys_errlist ve _sys_nerr.

Notlar

_sopen İşlevi tarafından belirtilen dosya açar filename ve dosya için paylaşılan okuma veya yazma, tarafından tanımlandığı şekilde hazırlar oflag ve shflag._wsopengeniş karakter sürümüdür _sopen; filename bağımsız değişkeni için _wsopen geniş karakter dizesi.Aksi takdirde, _wsopen ve _sopen aynı şekilde davranır.

Genel Metin Yordam Eşleşmeleri

Tchar.h yordamı

_UNICODE ve _MBCS tanımlanmaz

_MBCS tanımlanmış

_UNICODE tanımlanmış

_tsopen

_sopen

_sopen

_wsopen

Tamsayı ifade oflag bir veya daha fazla < fcntl.h > içinde tanımlanan aşağıdaki bildirim sabitleri birleştirerek biçimlendirilmemiş.İki veya daha fazla sabitleri form bağımsız değişkeni olduğunda oflag, bunlar birleştirilir Bitsel veya işleci () ile| ).

  • _O_APPEND
    Bir dosya işaretçisi sonuna kadar her yazma işlemi önce dosyayı yeniden konumlandırır.

  • _O_BINARY
    Bir dosya ikili (untranslated) modunda açar.(Bkz fopen İkili modda bir açıklaması.)

  • _O_CREAT
    Bir dosya oluşturur ve yazmak için açar.Belirtilen dosya herhangi bir etkisi olmaz filename bulunmaktadır.pmode Bağımsız değişkeni gereklidir _O_CREAT belirtilir.

  • _O_CREAT | _O_SHORT_LIVED
    Geçici olarak bir dosya oluşturur ve mümkünse için disk temizleme değil.pmode Bağımsız değişkeni gereklidir _O_CREAT belirtilir.

  • _O_CREAT | _O_TEMPORARY
    Geçici olarak bir dosya oluşturur. Dosyanın son dosya tanımlayıcısı kapatıldığında silinir.pmode Bağımsız değişkeni gereklidir _O_CREAT belirtilir.

  • _O_CREAT | _O_EXCL
    Bir hata değeri tarafından belirtilen bir dosya döndürür filename bulunmaktadır.Yalnızca ile 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
    Yalnızca okumak için bir dosya açar.İle belirtilemez _O_RDWR veya _O_WRONLY.

  • _O_RDWR
    Hem okumak ve yazmak için bir dosya açar.İle belirtilemez _O_RDONLY veya _O_WRONLY.

  • _O_SEQUENTIAL
    Öncelikle sıralı erişim diskten belirtir.

  • _O_TEXT
    Bir dosya (çevrilmiş) metin modunda açar.(Daha fazla bilgi için metin ve ikili modu dosya g/ç ve fopen.)

  • _O_TRUNC
    Bir dosyayı açar ve onu uzunluğu sıfır olarak kesen; Dosya yazma izni olmalıdır.İle belirtilemez _O_RDONLY._O_TRUNCile kullanılan _O_CREAT bir dosya oluşturur veya varolan bir dosyayı açar.

    [!NOT]

    _O_TRUNC Bayrağı belirtilen dosyanın içeriğini yok eder.

  • _O_WRONLY
    Yalnızca yazmak için bir dosya açar.İle belirtilemez _O_RDONLY veya _O_RDWR.

  • _O_U16TEXT
    Bir dosya Unicode UTF-16 modunda açar.

  • _O_U8TEXT
    Bir dosya Unicode UTF-8 modunda açar.

  • _O_WTEXT
    Bir dosya Unicode modunda açar.

Dosya erişim modu belirtmek için ya da belirtmelisiniz _O_RDONLY, _O_RDWR, veya _O_WRONLY.Erişim modu için varsayılan değer yoktur.

Bir dosya açıldığında Unicode modunda kullanarak _O_WTEXT, _O_U8TEXT, veya _O_U16TEXT, giriş işlevleri Çevir UTF-16 veri türü olarak depolanan içine dosyasını okumaya veri wchar_t.Unicode modunda açılmış bir dosyaya yazmak işlevleri beklediğiniz UTF-16 veri türü olarak depolanan içeren arabellek wchar_t.Dosya UTF-8 olarak kodlanır, ardından UTF-16 verileri UTF-8 yazılması ve onu okunduğunda dosyanın içeriğini UTF-8 kodlu UTF-16 çevrilmiş çevrilir.Okuma veya tek sayıda bayt Unicode modda yazma girişimi bir parametre doğrulama hatasına neden olur.Okumak veya programınızın UTF-8 olarak depolanan verileri yazmak için bir metin veya ikili dosya modu yerine bir Unicode modu kullanın.Gerekli kodlama çevirisi için siz sorumlusunuz.

If _sopen is called with _O_WRONLY | _O_APPEND (append mode) and _O_WTEXT, _O_U16TEXT, or _O_U8TEXT, it first tries to open the file for reading and writing, read the BOM, then reopen it for writing only.Dosya için okuma ve yazma başarısız açılırken, yalnızca yazmak için dosyayı açar ve Unicode modu ayarı için varsayılan değeri kullanır.

Bağımsız değişken shflag < share.h > içinde tanımlanan aşağıdaki bildirim sabitleri birini oluşan bir sabit ifadesi.

  • _SH_DENYRW
    Bir dosya için okuma ve yazma reddeder.

  • _SH_DENYWR
    Bir dosyaya yazma erişimi engeller.

  • _SH_DENYRD
    Bir dosya için okuma erişimi engeller.

  • _SH_DENYNO
    İzin verir, okuma ve yazma erişimi.

pmode Bağımsız değişkeni gereklidir yalnızca _O_CREAT belirtilir.Dosya yoksa, pmode ilk kez yeni dosyası kapatıldığında ayarlanır dosyanın izin ayarlarını belirtir.Aksi takdirde pmode göz ardı edilir.pmodebiri veya her ikisi bildirim sabitleri içeren bir tamsayı ifadesi _S_IWRITE ve _S_IREAD, < sys\stat.h > tanımlanır.Her iki sabitleri verildiğinde, bunlar Bitsel veya işleci ile birleştirilir.Anlamını pmode gibidir.

  • _S_IWRITE
    Yazma izin verilir.

  • _S_IREAD
    Okuma izin verilir.

  • _S_IREAD | _S_IWRITE
    Okuma ve yazma izin verilir.

Yazma izni verilmemişse dosya salt okunur.Windows işletim sisteminde, tüm dosyalar okunabilir; salt yazılır izin vermek mümkün değildir.Bu nedenle, modlarını _S_IWRITE ve _S_IREAD | _S_IWRITE eşdeğerdir.

_sopeniçin geçerli dosya izni maskesi uygular pmode için izinler ayarlama önce.(Bkz _umask.)

Gereksinimler

Yordam

Gerekli başlık

İsteğe bağlı ü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 >

Uyumluluk hakkında daha fazla bilgi için bkz. Uyumluluk.

Örnek

Örneğin bakın _locking.

.NET Framework Eşdeğeri

Uygulanamaz. Standart C işlevini çağırmak için PInvoke kullanın. Daha fazla bilgi için bkz. Platform Çağırma Örnekleri.

Ayrıca bkz.

Başvuru

Düşük Düzey G/Ç

_close

_creat, _wcreat

fopen, _wfopen

_fsopen, _wfsopen

_open, _wopen