It is occasionally reported that a "simple" program,
such as a "Hello, World!" program, does nothing when
it is run, even though the compiler reported no errors,
despite the program containing nothing other than a
This most often happens because the program has been
compiled and linked on a UNIX system and named
though other names can lead to similarly unexpected
run-time behavior on various systems.
Essentially this problem boils down to giving your program a name that is already known to the shell you are using to identify some other program, which the shell continues to execute instead of your program when you invoke it via, for example:
sh# test sh#
Under UNIX and many other system, a simple command name
invokes a searching mechanism that might well not choose
the program located in the current working directory if
there is another alternative (such as the
command commonly installed on UNIX systems).
The reliable way to invoke a program you just linked in the current directory under UNIX is to specify it using an explicit pathname, as in:
sh# ./test Hello, World! sh#
Users who encounter this problem should take the time to
read up on how their shell searches for commands, how to
set their search path, and so on.
The relevant UNIX commands to learn about include
info (on GNU systems),