Visual C++ 2005, Visual C++ .NET 2003 veya Visual C++ .NET 2002'de 64 MB'den büyük bir arabelleğe yazma fwrite işlevi çağrılamıyor

Makale çevirileri Makale çevirileri
Makale numarası: 899149 - Bu makalenin geçerli olduğu ürünleri görün.
Hepsini aç | Hepsini kapa

Belirtiler

Şu senaryoyu inceleyin. Microsoft Visual C++ 2005, Visual C++ .NET 2003 veya Visual C++ .NET 2002'de, bir ağ sürücüsünde bulunan bir dosyayı açmaya fopen işlevini kullanın. Işlev çağrısında, mod parametre olarak arma (yazma ve ikili) erişim türünü kullanın. Sonra 67,076,095 bayttan büyük bir arabelleğe yazma fwrite işlevini çağırırsanız, işlev çağrısı başarısız.

Not 67,076,095 bayt yaklaşık 64 megabayt (MB) bağlıdır.

Neden

Sorun, işletim sisteminin bir sınırlama nedeniyle oluşur.

Pratik Çözüm

Bu soruna geçici bir çözüm için aşağıdaki yöntemlerden birini kullanın:
  • Bir dosyayı açtığınızda, w + b (okuma ve yazma) erişim türünü mod parametre olarak kullanın.
  • Daha küçük bir arabellek kullanın. Sonra dosya için istediğiniz bayt yazma kadar fwrite işlevi bir döngüde arayın.

Referanslar

Fopen ve fwrite işlevleri hakkında daha fazla bilgi için ziyaret edin, aşağıdaki Microsoft Developer Network (MSDN) Web sitesi:
fopen, _wfopen
http://msdn2.microsoft.com/en-us/library/yeby3zcb(vs.71).aspx

fwrite
http://msdn2.microsoft.com/en-us/library/h9t88zwz(vs.71).aspx

Özellikler

Makale numarası: 899149 - Last Review: 16 Kasım 2007 Cuma - Gözden geçirme: 2.2
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Visual C++ 2005 Express Edition
  • Microsoft Visual C++ .NET 2003 Standard Edition
  • Microsoft Visual C++ .NET 2002 Standard Edition
Anahtar Kelimeler: 
kbmt kbopenfile kbcode kbtshoot kbprb KB899149 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:899149

Geri Bildirim Ver

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com