Aracılığıyla paylaş


_fsopen, _wfsopen

Bir akış dosya paylaşımı ile açılır.

FILE *_fsopen( 
   const char *filename,
   const char *mode,
   int shflag 
);
FILE *_wfsopen( 
   const wchar_t *filename,
   const wchar_t *mode,
   int shflag 
);

Parametreler

  • filename
    açıkiçin dosyanın adı.

  • mode
    İzin verilen erişim türü.

  • shflag
    İzin verilen paylaşım türü.

Dönüş Değeri

Bu işlevlerden her biri akışına bir işaretçi döndürür. boş işaretçi değeri bir hatagösterir. filename Veya mode olan NULL ya da açıklandığı gibi bu işlevleri boş bir dize geçersizparametre işleyicisi çağırmak Parametre doğrulama. Bu işlevler dönüş yürütülmesine devam etmek için izin verilip verilmediğini, NULL ve errno için EINVAL.

Bunlar ve diğer hata kodları hakkında daha fazla bilgi için bkz: _doserrno, errno, _sys_errlist ve _sys_nerr.

Notlar

_fsopen işlev tarafından belirtilen dosyayı açar filename akışı olarak ve dosyayı paylaşılan sonraki okuma veya yazma, mod tarafından tanımlandığı şekilde hazırlar ve shflag bağımsız değişkeni. _wfsopengeniş karakter sürüm , _fsopen; filename ve mode bağımsız _wfsopen geniş karakter dizeleridir. _wfsopenve _fsopen Aksi takdirde aynı şekilde davranır.

Karakter dizesi mode aşağıdaki tabloda gösterildiği şekilde dosya için istenen erişim türünü belirtir.

Terim

Tanım

"r"

Okuma için açılır. Dosya yok veya bulunamıyor, _fsopen çağrısı başarısız.

"w"

Yazmak için boş bir dosya açar. Verilen dosya varsa, içeriği yok edilir.

"a"

Yazma (ekleme); dosya sonunda açar yoksa, dosyayı önce oluşturur.

"r+"

Hem okumak ve yazmak için açılır. (Dosyanın varolması gerekir.)

"w+"

Hem okumak ve yazmak için boş bir dosya açar. Verilen dosya varsa, içeriği yok edilir.

"a+"

Ekleme ve okuma için açılır; yoksa, dosyayı önce oluşturur.

Use "w" ve "w+" dikkatli olun, varolan dosyaları yok edebilirsiniz gibi türleri.

Ne zaman bir dosya açıldığında ile "a" veya "a+" erişim türüne, tüm yazma işlemlerini dosyanın sonunda ortaya. Dosya işaretçi kullanarak yeniden fseek veya rewind, ancak herhangi bir işlem gerçekleştirilir yazmadan önce her zaman geri dosyasının sonuna taşınır. Bu nedenle, varolan verilerin üzerine yazılamaz. Zaman "r+", "w+", veya "a+" erişim türü belirtildiğinde, hem okuma hem de yazma izin verilir (dosyayı açık için güncelleştirmekabul edilir). Ancak, okuma ve yazma arasında geçiş yaparken bulunması bir araya fsetpos, fseek, veya geri işlem. Geçerli pozisyon için belirtilen fsetpos veya fseek isterseniz, işlem. Yukarıdaki değerlere ek olarak aşağıdaki karakterlerden birini eklenebilir mode ve dosya yönetimi yeni satırlar için çeviri modunu belirtmek için.

Terim

Tanım

t

Bir dosya (çevrilmiş) metin modunda açılır. Bu modda, satır başı return–çizgi Besleme (cr-lf) birleşimleri tek çizgi beslemeleri (lf) girdi çevrilir ve lf karakterleri çıktıda cr-lf kombinasyonlarına çevrilir. Ayrıca, ctrl + z giriş üzerinde bir dosya sonu karakteri olarak yorumlanır. Okuma veya okuma/yazma için açılan dosyalar, _fsopen için ctrl + z dosya sonunda denetler ve mümkünse, kaldırır. Bu kullanma çünkü yapılır fseek ve ftell ctrl + z ile biter neden olabilecek bir dosya içinde taşımak için fseek dosyasının sonuna hatalı davranmaya.

b

Bir dosyayı (untranslated) ikili modda açar; Yukarıdaki çevirileri görüntülenmez.

S

Önbelleğe alma için optimize edilmiş, ancak sıralı erişim için diskten sınırlı değil olduğunu belirtir.

R

Önbelleğe alma için optimize edilmiş, ancak rasgele erişim için diskten sınırlı değil olduğunu belirtir.

T

Bir dosyayı geçici belirtir. Mümkünse, onu boşaltıldı diske.

D

Bir dosyayı geçici belirtir. Son dosya işaretçi kapatıldığında silinir.

t Veya b verilmez mode, çeviri modu varsayılan modu değişkentarafından tanımlanan**_fmode**. t Veya b bağımsız değişken, işlev başarısız öneki ve döner NULL. Metin ve ikili modları tartışmak için bkz: metin ve ikili mod dosya g/Ç.

bağımsız değişken shflag Share.h içinde tanımlanan aşağıdaki bildirim sabitlerinden biri oluşan sabit bir ifadedir.

Terim

Tanım

_SH_COMPAT

16-Bit uygulamalar için Uyumluluk modunu ayarlar.

_SH_DENYNO

İzinleri okuma ve yazma erişimi.

_SH_DENYRD

Dosya okuma yetkisi engeller.

_SH_DENYRW

Okuma ve dosyaya yazma erişimi reddeder.

_SH_DENYWR

Dosyaya yazma erişimini engeller.

Genel metin yordamı eşlemeleri

Tchar.h yordamına girildi

_UNICODE ve _mbcs tanımlı değil

Tanımlanan _mbcs

Tanımlanan _UNICODE

_tfsopen

_fsopen

_fsopen

_wfsopen

Gereksinimler

İşlev

Gerekli üstbilgi

İsteğe bağlı üstbilgileri

_fsopen

<stdio.h>

<share.h>

bildirim sabiti için için shflag parametre.

_wfsopen

<stdio.h> veya <wchar.h>

<share.h>

bildirim sabiti için için shflag parametre.

Örnek

// crt_fsopen.c

#include <stdio.h>
#include <stdlib.h>
#include <share.h>

int main( void )
{
   FILE *stream;

   // Open output file for writing. Using _fsopen allows us to
   // ensure that no one else writes to the file while we are
   // writing to it.
    //
   if( (stream = _fsopen( "outfile", "wt", _SH_DENYWR )) != NULL )
   {
      fprintf( stream, "No one else in the network can write "
                       "to this file until we are done.\n" );
      fclose( stream );
   }
   // Now others can write to the file while we read it.
   system( "type outfile" );
}
  

.NET Framework Eşdeğeri

Ayrıca bkz.

Başvuru

G/ç

fclose, _fcloseall

_fdopen, _wfdopen

ferror

_fileno

fopen, _wfopen

freopen, _wfreopen

_open, _wopen

_setmode

_sopen, _wsopen