Aracılığıyla paylaş


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

Ayrıca bkz.

Başvuru

Alt düzey g/Ç

_close

_creat, _wcreat

fopen, _wfopen

_fsopen, _wfsopen

_open, _wopen