SIGILL bezeichnet auf POSIX-kompatiblen Plattformen ein Signal, das das Auftreten einer ungültigen Maschinen-Anweisung anzeigt.
Die Konstante zu SIGILL ist in der Header-Datei signal.h
üblicherweise mit dem Wert 4 definiert. Symbolische Signal-Bezeichnungen werden verwendet, da sich die Signalnummern plattformabhängig unterscheiden können.
Etymologie
SIG wird gewöhnlich als Vorsilbe für Signale verwendet. ILL ist ein Kürzel für den Begriff illegal mit der Bedeutung ungesetzlich. Unter Gesetz versteht man in diesem Zusammenhang eine Rechenvorschrift, die dem Opcode einer Central Processing Unit (CPU) zugeordnet ist. Es mag Opcodes geben, denen keine Rechenvorschrift zugeordnet ist, die sind dann illegal.
Verwendung
SIGILL wird erzeugt, um den normalen Ablauf eines Prozesses abzubrechen und einen Speicherabzug zu erstellen.
Der Empfänger kann eine Signalbehandlung installieren, z. B. um Daten zu sichern oder das Programm weiter laufen zu lassen. Letzteres kann sinnvoll sein, um die Eigenschaften einer CPU durch die Verwendung undefinierter Opcodes zu ermitteln.
Signale werden mit der C-Funktion kill
an einen Prozess, einen Thread oder eine Prozessgruppe geschickt. Dies wird z. B. durch die Befehlszeilenprogramme kill
oder killall
gemacht. Dies ist auch für SIGILL möglich.
Ein Speicherabzug kann durch ulimit
eingestellt werden. Das ist eine C-Funktion, deren Aufruf in die üblichen Unix-Shells eingebaut ist.