To read source from stdin use "-".
preprocessor man page says,
Either infile or outfile may be -, which as infile means to read from
standard input and as outfile means to write to standard output.
On Apr 12, 2005, at 7:10 AM, Dimitry Golubovsky wrote:
Hi,
A program I am working on generates some C code on the fly, and I would like to check its syntax right after generation. I might save this code fragment in a temporary file and gun gcc -c over it, watching for exit code (0: syntax OK, 1: incorrect). This is fine with the one exception that I have to create temporary files and then clean them up. Does there exist any way to accompilsh this with pipes entirely? Output object file may be discarded: I don't need it. Or I might even use -S option to only assemble, but again, output must be stdout, not a file (or /dev/null which does not work either: the last program in the pipeline tries to CREATE it, not to write into it, and fails).
Looking for verbose output from gcc -v -pipe ... I noticed that all the components (cpp, cc1, as) are pipe-connectable (at least in most cases). It is only the gcc (driver) which says e. g.
gcc: -E required when input is from standard input
which limits me to using preprocessor as a pipe only.
I am afraid direct invocation of cc1 may not be good because I have no idea how its command line options are stable across various versions of gcc.
Does there exist an alternative driver/script doing same job as the "stock" gcc, but allowing piping its input and output?
Thank you.
-- Dimitry Golubovsky
Anywhere on the Web
- Devang