I have a C program that reads command line arguments from argv. Is it possible to make a pipe to redirect the contents of a file as command line arguments to my program? Suppose I have a file arguments.dat
with this content:
0 0.2 302 0
And I want my program to be called with:
./myprogram 0 0.2 302 0
I tried the following:
cat arguments.dat | ./myprogram
without success.
xargs
is your answer:
cat arguments.dat | xargs ./myprogram
Or easier:
xargs -a arguments.dat ./myprogram
Check the manual for the many ways to customize xargs
. For example, you can read line-by-line rather than by word, and you can use the arguments in more complex replacements.