fprintf fonksiyonu

Başlatan mihri, 29 Haziran 2009, 02:11:24

mihri

Merhaba.

fprintf(lcd_putc,"mihri")


yazdığım kod parçasında aşağıdaki hatayı alıyorum.

Error   [499] ; 0. undefined symbol:
	_fprintf(asd.obj)


Daha önce böyle bir durumla karşılaşan oldu mu?
"Eppur si muove!"

mucit07


arslan74

Merhaba,

LCD bilgi yazmak için niye bu fonksiyonu kullaniyorsun? Bu forumda ben daha önce LCD ekrana nasıl bilgi yazılır bir acıklama yapmıştım. Bunun için Sprintf fonksiyonunu kullanmıştım. Forumda aratır aradığın cevabı bulacaksın.

Selamlar

mihri

Merhaba, verilen cevaplar için teşekkür ederim.
Forumda araştırma yaptım sprintf fonksiyonu ile lcd nasıl kullanılıyor biliyorum, fakat benim asıl öğrenmek istediğim konu fprintf fonksiyonunun nasıl çalıştığı.

ansi standartlarında aşağıdaki gibi bir kalıp verilmiş;

int fprintf(FILE *stream, const char *format, ...);

fprintf	 sends formatted output to a stream


Burdaki "stream" tam olarak nedir?
"Eppur si muove!"

Tagli

Veri akış yolu demek sanırım. Bu herhangi bir yer olabilir. Ekran da olabilir, dosya da olabilir, başka bir program (process) da olabilir, hatta belki doğrudan yazıcı da olabilir.

Windows'ta nasıldı hatırlamıyorum ama Linux'te ekran da sanırım bir çeşit dosya sayılıyor, oraya STDOUT veya STDERR gibi şeyler yazılabiliyor gerçi normalde ikisi de ekrana basma anlamına geliyor, ama bu ifadelerin nereyi işaret ettiklerini değiştirebilirsin. Hatta birden fazla programın STDIN ve STDOUT değerlerini değiştirerek birbirlerine veri yollamalarını da sağlayabilirsin ki buna "piping" deniyor. Örnek vermek gerekirse Linux'te "ls | sort" yazdığımızı varsayalım. ls normalde tek kullanılınca klasör içeriğini ekrana basar, Windows'taki dir gibi yani. Ama STDOUT'u piping ile sort'un STDIN'ine gönderilmiş. Bu durumda çıktısını sort alıyor ve sonucu sıralayarak ekrana basıyor.

Yukarda anlattıklarımın konuyla pek de ilgi değil gibi ama stream kavramını bildiğim kadarıyla (ben de doğru bildiğimden pek emin değilim gerçi) açıklamak için işe yarayabileceğini düşündüm.
Gökçe Tağlıoğlu

arslan74

fprintf standart C nin bir kütüphanesidir. İşletim sisteminde (örneğin DOS, Linux gibi) fopen ile acılan bir dosyanın içine yazmak için kullanılıyor. FILE dediğin yere acılan dosyanın ismini veya adresini girersin.

LCD bir file olarak göstermen gerek yoksa çalışmaz. Öyle bir şey yapacaksan printf ile de yapabilirsin. STDOUT'u LCD ye yönlendirmeyi başabilirsen printf ile yazdığın yazılar LCD gözükür.

Selamlar