Aracılığıyla paylaş


Bayt ve geniş akışlar

Bayt akışı bir dosyayı bayt dizisi olarak ele alır. Program içinde akış, aynı bayt dizisidir.

Buna karşılık, geniş bir akış bir dosyayı genelleştirilmiş çok baytlı karakterler dizisi olarak değerlendirir ve bu da çok çeşitli kodlama kurallarına sahip olabilir. (Metin ve ikili dosyalar daha önce açıklandığı gibi hala okunur ve yazılır.) Program içinde akış, geniş karakterlerin karşılık gelen dizisi gibi görünür. İki gösterim arasındaki dönüştürmeler Standart C Kitaplığı içinde gerçekleşir. Dönüştürme kuralları, ilke olarak kategorisini setlocaleLC_CTYPEdeğiştiren bir çağrısıyla değiştirilebilir. Her geniş akış, dönüştürme kurallarını geniş odaklı hale geldiğinde belirler ve daha sonra kategori LC_CTYPE değişse bile bu kuralları korur.

Geniş bir akış içinde konumlandırmak, metin akışlarıyla aynı sınırlamalara sahip olur. Ayrıca, dosya konumu göstergesinin duruma bağımlı kodlamayla ilgilenmesi gerekebilir. Genellikle hem akış içinde bir bayt uzaklığı hem de türünde mbstate_tbir nesnesi içerir. Bu nedenle, geniş bir akış içinde dosya konumu elde etmenin tek güvenilir yolu çağrısı fgetposyapmaktır ve bu şekilde elde edilen bir konumu geri yüklemenin tek güvenilir yolu çağrısı fsetposyapmaktır.

Ayrıca bkz.

Dosyalar ve akışlar
setlocale, _wsetlocale