Putc, fputc,Printf FprintF Getc fgetcKomutları..

Başlatan xoom, 19 Nisan 2013, 18:08:07

xoom

Arkadaşlar bu (fputc- putc) (getc- fgetc)  (printf- fprintf) (gets -gets) Vs.vs..  bu komutları neye göre seçiyoruz? Bazen başkalarının yazdıkları kodları gözlemlediğimde putc ilede gönderilebilecek komutları fputc ile göndermeyi tercih etmişler .. Neden Niçin ? Şu alma ve gönderme komutlarını açıklayan bir linkte olabilir veya açıklama yapabilecek birisinden destek talep ediyorum..

fatih6761

Bu f öneki dosyaya (file) işlem ypaılacağınız belirtiyor. Benim bildiğim kadarıyla standart girdi-çıktı akışlarına işlem yaptığınızda farkı kalmıyor. Sadece kütüphanelere göre değişebiliyor.
putc("") = fputc(stdout, "")
gibi... Bir artı tarafı da hata mesajlarını stderr'e yazarak istendiğinde günlüklere aktarabilmeniz. Bulunduğunuz terminalde (xterm, ms-dos...) özel olayları işlemek için özel durum varsa bu dosya akışlarını kullanabilirsiniz.
Bunun dışında bildiğim bir farkı yok...

toyo

bu komutların başına 'f' harfi getirildiğinde farklı bağlantı ayarları kullanarak bilginin gönderileceği yada alınacağı belirtilir.
örnek olarak
#use rs232(baud=2400, xmit=PIN_b1,rcv=PIN_b2,parity=N,stop=1)

bu seri iletişim ayarına göre
basitce göndermek
putc(0x6C);

basitce almak
if(getc()==0x6C)

Bu şekilde olur.
yukarıdaki ayar ile iletişim kurulcaksa PIC i donanımsal tx rx pinleri kullanılmış olur.

2. örnek

#use rs232(baud=2400, xmit=PIN_A1,rcv=PIN_A2,parity=N,stop=1,stream=iletisim_1)

bu seri iletişim ayarının bir ismi oldu.iletişim1 isimli bir ayar yaptık.
rx tx dışında başka pinleri kullanılabilir.bu şekilde yazılımsal olarak seri iletişim kurmuş oluruz.
iletişim 1 ayarlarına göre bilgiyi gönder.
fputc(0x6C,iletisim_1);

iletişim 1 ayarlarına göre bilgiyi al
if(fgetc(iletisim_1)==0x6C)


Mesela 2 farklı hızda bilgi gönderilcek diyelim.
iletişim1 gibi bir stream ismi verilerek bir ayar yapılır.9600 baud hızı ve gönderip alınacak pinler belirtilir.bilgi iletişim1 ayarlarına göre gönderildiğinde 9600 hızında ve belirtilen pinler üzerinden gönderilir.
iletişim2 gibi bir stream ismi verilerek bir ayar yapılır.2400 baud hızı ve gönderip alınacak pinler belirtilir.bilgi iletişim2 ayarlarına göre gönderildiğinde 2400 hızında ve belirtilen pinler üzerinden gönderilir.
Serdar ÇİÇEK'in kitabı elinizde mevcut ise 436. ve ileriki sayfalarda daha açık şekilde anlatılmış.
Gelirken ne getirilir ki giderken ne götürülür.