Think carefully before executing commands containing "rm", especially "sudo rm -rf ", if you require more information concerning this matter, read this.
I am an experimenter, give me the most stable OS and I can make it unstable in a few hours.
C == seriously fast == FTW!
Sure: http://www.linfo.org/unix_philosophy.html, http://en.wikipedia.org/wiki/Unix_philosophy
The UNIX Philosophy is actually all about keeping modularity at all levels: at code but also at the system itself. Modularity in code is probably something you already know and hopefully also use: structured programming, avoiding globals, "1 function <=> 1 task", etc. C was designed to be used that way; the so-called "C Philosophy" is the same as the UNIX one... both were created simultaneously by the same people for the very same project.
At system level, it's about having "1 task <=> 1 program" and make the system be a net of interconnected programs communicating eachother (Just the same as you do when using functions in your C programs). This communication can be done through different channels: the pipe, the program's main() return value (have you ever wondered why main() has to return something?), etc. For that, everything has to use a common interface, which in UNIX is the file. That's why stdout, stdin are always files (either a plaintext or a device file or whatever) and why you can redirect I/O to wherever you like.
Obviously, using fprintf() over printf() doesn't affect that behaivor. You can still redirect output in a program that uses printf() as this function can be considered to act as a macro for fprintf(stdout, ...). (that's not what really happens as we first need to parse the variable argument list, but the effect is the same).
Bookmarks