Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Kako c funkcija printf radi?

[es] :: C/C++ programiranje :: C/C++ za početnike :: Kako c funkcija printf radi?

[ Pregleda: 2433 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

zero_man
ucenik
Beograd

Član broj: 322384
Poruke: 2
*.dynamic.isp.telekom.rs.



Profil

icon Kako c funkcija printf radi?02.04.2014. u 21:16 - pre 122 meseci
Pozdrav svima,
nov sam na forumu a programiranje u c-u sam poceo da ucim pre jedno 3meseca, pa sad imam jedno pitanje:)

Naime interesuje me kako printf i scanf funkcije rade "ispod haube" ili ti internally.
Znam da su ove funkcije iz biblioteke stdio.h i znam sta rade i kako se koriste, ali ne mogu da shvatim na koji nacin funkcija printf stampa tekst na ekranu.
Da li su ove funkcije napisane u c-u kao sto sam negde procitao ili su kreirane uz pomoc asemblera.
Ono sto me zapravo interesuje na koji naci c-program prihvata ulaz napr. sa tastature ili kako stampa karaktere na ekranu, da li prosledi niz karaktera operativnom sistemu pa sam os to obavi ili na neki drugi nacin.
 
Odgovor na temu

Odin D.
Mlađi referent za automatizaciju
samoupravljanja

Član broj: 37292
Poruke: 2549



+8370 Profil

icon Re: Kako c funkcija printf radi?02.04.2014. u 21:33 - pre 122 meseci
Sav pristup hardveru (na PC masinama) ide preko OS-a.
OS obezbedjuje korisnickim programima pristup tim resursima preko odgovarajucih servisa (ili kako se to vec naziva).

U tom smislu, printf ne ispisuje nista direktno na ekran vec na odgovarajuci nacin prosledi OS-u sta i kako zeli da ispise, a dalje se o tome brine OS.
Isti slucaj i za obrnuti smijer, scanf npr.

Interne realizacije tih funkcija zavise od platforme, konkretnog proizvodjaca biblioteke/kompajlera itd.
 
Odgovor na temu

the_tosic

Član broj: 37314
Poruke: 381
*.ptt.rs.



+128 Profil

icon Re: Kako c funkcija printf radi?02.04.2014. u 21:38 - pre 122 meseci
Na ulaz i izlaz mozes da gledas kao na fajlove.
Kada u C-u radis printf, scanf zapravo radis fprintf(stdout, ...) ili fscanf(stdin...)
Ti "fajlovi" su mapirani na nesto (shell) na operativnom sistemu.

Mislim da je ceo C stdlib napisan u C-u, osim sistemskih poziva koji su u asembleru, ali je to zanemarljivo mali deo koda.
npr putc() koji stavlja karakter u neki fajl poziva operativni sistem za to.

Ako te zanima "sors" printf-a

glibc
https://sourceware.org/git/?p=...8898950da8e3fa5f247390;hb=HEAD

i "prostija" verzija:
http://www.sparetimelabs.com/tinyprintf/tinyprintf.php

*PS. ovo je uproscen pogled na stvari
 
Odgovor na temu

[es] :: C/C++ programiranje :: C/C++ za početnike :: Kako c funkcija printf radi?

[ Pregleda: 2433 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.