Jak poslat programu textovou zprávu na standardni vstup stdin?

condor condor na email.cz
Pondělí Říjen 16 10:33:52 CEST 2006


Ahoj, potřeboval bych poslat programu na standardní vstup stdin
řetězec. Mám konzolovou aplikaci, kde do konzoly píši příkazy a
potřebuji příkaz poslat ze vzdáleného počítače.
V knize "Pokročilé programování v operačním systému Linux"
(www.advancedlinuxprogramming.com) jsem se dočetl (7.2.5), že mohu
procesům poslat zprávu na stdout přes file descriptor procesu
následujícím způsobem:

echo "zprava" >> /proc/CisloProcesu/fd/1

s tím, že 0 je stdin, 1 je stdout a 2 je stderr.

Zkusil jsem tedy poslat procesu zprávu na /proc/CisloProcesu/fd/0.
Zpráva se vypsala na konzolu, ale na stdin nepřišla. Vyčítání ze
stdin jsem skoušel následujícími spůsoby:

fgets (linebuf, 1000, stdin);
i
std::cin >> linebuf;

Oboje se stejným výsledkem. Zkusil jsem tímto způsobem poslat
příkaz "cd .." shellu bash i xterm-u. Se stejným výsledkem.
Příkaz se vypsal na konzolu, ale nepokusil se provést ani
neodřádkoval.

Nemáte s tím někdo zkušenost? Moc by mi to pomohlo.
Díky.

condor



Další informace o konferenci Linux