putc fonksiyonu ile 0x0A yazamama sorunu(C dili)

Başlatan Gökhan BEKEN, 08 Şubat 2015, 17:19:01

Gökhan BEKEN

Dosyalama işlemi yaparken
putc fonksiyonu herşeyi düzgün yazıyor ama decimal 10 yani hex 0x0A sayısını yazarken 1byte fazladan koyarak 0x0D0A olarak yazıyor.
Bu istemediğim birşey, bunu nasıl engellerim?
Özel mesaj okumuyorum, lütfen göndermeyin.

Salih


Gökhan BEKEN

Farketmiyor. Çünkü 10 yazınca yeni satır ve satır başı işlemi yapmak istediğimi sanarak hemen 13'ü ekliyor. Ascii tablodaki 10 ve 13 zaten bu iş için kullanılıyor normalde.

Fakat çözümünü bulamadım.
Özel mesaj okumuyorum, lütfen göndermeyin.

Salih

#3
Ben şimdi denedim, sende olan problem olmadı. Sadece 0X0A karakteri gitti.
CCS C 5.030

Edit : Özür dilerim, ben konu bölümüne bakmamışım.

MrDarK

Binary mode diye birşey olabilir meftun, biraz daha araştırmak gerek. Benzer bir olay FTP ve telit'de başıma geldi.
Picproje Eğitim Gönüllüleri ~ MrDarK

Gökhan BEKEN

Bu arada kullandığım araçları belirtiyim, mcu ile değil bilgisayar ile çalışıyorum.
dev c++ idesi ile min gw kullanıyorum, dil olarak C kullanıyorum. Hex editörden baktığımda 0x0A yazacağı yerlere 1 byte daha ekleyerek 0x0D0A yazıyor, bunun yüzünden dosyadaki bütün sıra kayıyor.
Özel mesaj okumuyorum, lütfen göndermeyin.

z

0x0D yi sen hiç yazma 0x0A yazdığında sistem 0x0D 0x0A yazsın.

Bir yerlerde Carriage Return - Carriage Return Line Feed seçeneği olması lazım.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

MrDarK

Meftun yaşadığın durumun ingilizcesi ve cevabı ;)

You need to open the file in "binary" mode, e.g.

tmp_ifp = fopen("tmp_name.bin", "wb");


http://bytes.com/topic/c/answers/467996-writing-0x0a-bin-file-without-having-automatically-write-0x0d
Picproje Eğitim Gönüllüleri ~ MrDarK

Gökhan BEKEN

Sağolasın düzeldi. Daha öncede başıma gelmişti nasıl çözdüğümü unutmuşum :)
Özel mesaj okumuyorum, lütfen göndermeyin.

mir_as82

Eğer yanlış hatırlamıyorsam bu Windows sistemlerinde olan birşeydi. Hoca kursta bu olaya değinmişti.