Hi Song, > Tried [echo " " | gcc -c -xc -v -o tmp.o], seems gcc does not receive the pipe > as its input. echo "" | gcc -c -xc - -v -o tmp.o .....................^ The '-' tells the compiler to use stdin for the source. Note that parameter order is significant for the gcc command line parameters. Sometimes in non-obvious ways. Sincerely, --Eljay