💾 Archived View for gem.pwarren.id.au › gemlog › 2022-03-11.gmi captured on 2023-01-29 at 02:16:12. Gemini links have been rewritten to link to archived content

View Raw

More Information

⬅️ Previous capture (2022-07-16)

-=-=-=-=-=-=-

re: Bugs in Hello World

https://blog.sunfishcode.online/bugs-in-hello-world/

That article purports that it's a program bug when the 'hello world' C program writes to a full filesystem and doesn't correctly identify that it was not able to output correctly and emit appropriate error codes.

I would contend that this is a failure of the program specification.

The "Hello World" specification, is generally considered to be

* Print the string "Hello World" to the console.

Now in the linux world, that assumes that you can always write to the 'stdout' file descriptor, and for a console, that holds true and the usual:

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
  puts("Hello World!");
  return EXIT_SUCCESS;
}

Does that just fine!

However, if you _can't_ write to the stdout file descriptor, the program will not know about it.

However, if we specify the program to:

* Emit the string "Hello world" to the console

* Include handling for when the console output is redirected to non-consoles (files, FIFOs, devices etc)

That would cover articles issues.

(I think, as an amateur programmer who hasn't written serious code in around 10 years)

home

backlink