Fórumok
Usb-n kommunikálok saját mikrovezérlől hardware-rel. Mivel több másodpercet is igénybe vesz a dolog, kiíratom, hogy
printf ("Downloading... ");
usleep(500000);
send_usb(block);
Ennek ellenére csak a kommunikáció után íródik csak ki a szöveg. Sima c-ben, gcc-vel fordított forrásról van szó, semmi tudatos multi-thread részemről.
Hogyan előzheti meg az usb kezelés a printf utasítást? Nem értek a multi-thread világhoz, így lehet, butaságot kérdezek, de lehet, hogy a gcc több szálon futtatja? Netán a konkurráló printf és az usb az utóbbi nagyobb erőforrás-igénye miatt tartja fel a kiíratást?
Szerk.: Ja és a lényeg: mit tehetek ellene?
Hozzászólások
Ennyiből inkább arra tippelnék, hogy bufferelt a printf kimenete.
http://stackoverflow.com/questions/13035075/printf-not-printing-on-cons…
Ez megerősíteni látszik az elméletemet.
-----------------------------------------
Akit tudja, csinálja, aki nem tudja, tanítja... Hm... igazgatónak talán még jó lennék. :)
Köszönöm, ez segített!
fflush(stdout);
printf ("Downloading...\n");
vagy fflush(); ahogy már írták.