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?
desimal 10 yazarak denedin mi?
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.
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.
Binary mode diye birşey olabilir meftun, biraz daha araştırmak gerek. Benzer bir olay FTP ve telit'de başıma geldi.
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.
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.
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 (http://bytes.com/topic/c/answers/467996-writing-0x0a-bin-file-without-having-automatically-write-0x0d)
Sağolasın düzeldi. Daha öncede başıma gelmişti nasıl çözdüğümü unutmuşum :)
Eğer yanlış hatırlamıyorsam bu Windows sistemlerinde olan birşeydi. Hoca kursta bu olaya değinmişti.