The hello.h header file contains function prototypes that serve as declarations of the functions.
The hello.c file contains definitions of the functions after a preprocessor directive to include the contents of the header file. This ensures that the definitions are consistent with the declarations. Note the name of the header file is in quotes, indicating the header file should be looked for in the project source directory. The name of the standard I/O header is enclosed in angle brackets, indicating it should be looked for in the system header directory.
The main.c file also includes the hello.h header so that the use of the function hello() can be type-checked against the prototype. main() returns 0, indicating success, rather than an error code. The process that invoked fork() to create the process that called main, will be able to check this status result by invoking some variant of the wait() system call. The formal arguments to main() allow main() to access command line arguments. argc i