Christian Seiler: C: Kindprozess ohne kill() / killpg() terminieren

Beitrag lesen

Hallo,

ich hab mir Dein Problem jetzt nicht genau angesehen (es sieht ziemlich konfus aus und ich hab gerade Kopfschmerzen - vielleicht sehe ich mir das später nochmal genauer an), aber ich sehe im Prinzip drei Möglichkeiten:

a) Du überrpüfst das Timeout im Kindprozess und nicht im Elternprozess und der Kindprozess beendet sich selbst. Weiß nicht, ob das mit Deiner Aufgabenstellung zusammenpasst, aber das wäre wohl das einfachste. Wenn Du im Zweifel noch Systemaufrufe unterbrechen willst, dann kannst Du Dir alarm(2) annsehen.

b) Du nutzt eben kill() - das ist die einzige Möglichkeit, einem Prozess ein Signal zu senden (naja, außer über system("kill PID"), was aber im Endeffekt auf's gleiche hinausläuft ;-)).

c) Du nutzt irgend einen IPC-Mechanismus wie Shared Memory, Semaphore oder eben sowas simples wie ne Pipe / ein Socketpaar, das vor dem Fork angelegt wird.

Viele Grüße,
Christian