my_script in.file | other_process [>out.file] # no seg.fault my_script < in.file | other_process [>out.file] # no seg.fault my_script in.file [>out.file] # no seg.fault my_script < in.file [>out.file] Segmentation fault # or, equivalently: cat in.file | my_script [>out.file] Segmentation fault # seg.fault whether or not output is redirected; # output is always the same as in the first 3 cases