Programmierproblem

Post Reply
Message
Author
Stephan+Bahr

Programmierproblem

#1 Post by Stephan+Bahr »

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 !

Jochen

Re: Programmierproblem

#2 Post by Jochen »

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.

hugenay

Re: Programmierproblem

#3 Post by hugenay »

warum die doppelten eckigen Klammern, Jochen?

Jochen

Re: Programmierproblem

#4 Post by Jochen »

Ö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.

Post Reply