_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
System::IO::FileStream::FileStream