Some MPI systems ensure that all processes have all command line arguments (it is one reason that the argc and argv arguments to MPI_Init are pointers) but this is not required by the standard.

Note that output from printf may not appear until a process (begins to) exit; this is actually a feature of Unix. You can use the fflush function to force the printf routine to flush output.