Bemenetre átirányítás és argumentumok fájlból húzása egyszerre

Lehetséges egyszerre egy program stdin-jére ráküldeni egy fájlt és egy másikból felszívni az argumentumokat?
cat tostdin.txt | program < toargs.txt
Ez nekem nem nagyon akar működni; az argc-ben 1 van.

Hozzászólások

Persze, hogy 1 van, hiszen az argumentum magának a programnak a neve, helyesebben az a string, ahogyan hívtad. Egyébként miért ne lehetne egyfelől az stdin-ről, másfelől az argumentumból, mint file-ból olvasni? Helyesen:

cat tostdin.txt | program toargs.txt

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

Persze, hogy 1 van, hiszen az argumentum magának a programnak a neve, helyesebben az a string, ahogyan hívtad.
Ezt én is tudom. Erről beszélek, hogy zéró paramétert kapott meg.
cat tostdin.txt | program toargs.txt
Így az argc-ban 2 lesz, az argv[1] pedig azt fogja tartalmazni, hogy 'toargs.txt'. Én nem ezt szeretném. Amit én szeretnék, hogy a toargs.txt tartalma legyen átadva argumentumként, egy sor egy argumentum. (Vagy akár egy szó egy argumentum, az is jó.) Tehát toargs.txt tartalma:
arg1
arg2
arg3
arg4
És én ezt szeretném úgy átadni neki fájlból, mintha argumentumként lennének átadva:
cat tostdin.txt | program arg1 arg2 arg3 arg4
Na most, ha csak annyit csinálok, hogy
program < toargs.txt
akkor még működik is (bár egy argumentumként átadva), de ha a bemenetre is irányítok valamit, akkor nem.

Csak tipp, mert nem biztos, hogy értem, amit akarsz:

cat tostdin.txt | program `cat toargs.txt`

vagy "korszerűbben"

cat tostdin.txt | program $(cat toargs.txt)

amit Zs kollega irt, plusz

cat tostdin.txt | xargs -a toargs.txt program

vagy

xargs -a toargs.txt program < tostdin.txt