Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>Any bootloader will almost certainly have #include directives, unless it is poorly designed. I don't know where you got that quote, but perhaps you misunderstood it. A bootloader will invariably start with a piece of pure assembly code for the initial low-level processor initialization and to initialize the C runtime environment. This code is simply not possible to write in C. But the rest of the code can be as complex as needed, within the restrictions of the environment (memory, etc).</p> <p>stdio is simply a set of file streams connected to some kind of device which can receive input and output. You can implement stdin, stdout, stderr or any subset of them. You also may implement a filesystem for which you can open arbitrary file streams. In a modern OS, this ends up connected to some kind of terminal typically, which involves quite a bit of layers in-between because it's a virtual terminal that shows up on your monitor and thus requires a graphics driver and so forth. On a primitive embedded system, stdio might be connected to a serial port, or an LED display.</p> <p>stdio is implemented with the <code>read()</code> and <code>write()</code> functions. If these are not implemented, you simply can't use the stdio functions like <code>printf()</code>, <code>fprintf()</code>, <code>fgets()</code>, etc. That doesn't mean you can't write to your graphics display, serial port or whatever else. It just means you don't have a standard facility to do so and will need to call custom functions.</p> <p>To answer your question: you can do anything in C without stdio. It's all written in C anyway, you're just losing some common functionality implemented in any C standard library.</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload