Hallo,
ich habe hier folgende Aufgabenstellung, habe aber nach soo langer Zeit ohne C nicht mehr den richtigen Einstieg :
Ich soll mit einem C-Programm unter UNIX ununterbrochen checken, ob die Datei input.dat ( ein Shellscript ) sich verändert hat. Wenn sie sich verändert hat soll sie ( das Script ) ausgeführt werden und die Rückmeldungen, die von den einzelnen Befehlen aus dem Script kommen sollen untereinander in die Datei output.dat geschrieben werden. Hat jemand eine Lösung für mich ?
Danke im Voraus !
Programmierproblem
Re: Programmierproblem
Muss es denn in C sein? Als Shellskript wär's 'n x-Zeiler, mit x <=10:<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">
LASTMD5=""
while true ; do
MD5=`md5sum input.dat`
if [[ "$MD5" != "$LASTMD5" ]] ; then
./input.dat >output.dat
fi
LASTMD5=$MD5
sleep 5
done
</font><hr></pre></blockquote>
Na siehste, geht sogar kürzer. Ansonsten halt mal popen(), system(), fork(), exec(), pipe() in den Manual-Pages nachschlagen.
LASTMD5=""
while true ; do
MD5=`md5sum input.dat`
if [[ "$MD5" != "$LASTMD5" ]] ; then
./input.dat >output.dat
fi
LASTMD5=$MD5
sleep 5
done
</font><hr></pre></blockquote>
Na siehste, geht sogar kürzer. Ansonsten halt mal popen(), system(), fork(), exec(), pipe() in den Manual-Pages nachschlagen.
Re: Programmierproblem
Öhm, gute Frage. Die einfachen tut's an der Stelle auch. Die doppelten gelten für die bash als Conditional Expression, da hat man teilweise eine andere Syntax als beim test-Kommando (also die einfachen eckigen Klammern). In diesem Fall ist es aber gleich. Siehe auch man bash/CONDITIONAL EXPRESSIONS.