Not logged in. · Lost password · Register

Page:  1  2  3  next 
Steppenwolf
Schläfer
Avatar
Member since Nov 2002
1535 posts
Subject: signale nicht posix & ansi konform?
hi,

bin mittlerweile bis zu den signalen vorgekommen und kann den quellcode nur ohne den ansi- und posix-flag kompilieren. muss das so sein oder hab ich noch irgendwas falsch gemacht?
Eem
staatl. geprüfter Peppeneulenprüfer
Avatar
Member since Oct 2002
435 posts
welche signale meinst du?
mysh oder wo bist du?
Sebbi
Sensenmännlein
Avatar
Member since Nov 2002
377 posts
sigset_t set;
sigemptyset(&set);
sigaddset(&set, <SIGNAL>);
if(sigprocmask(<SIG_BLOCK | SIG_UNBLOCK>, &set, NULL)) {
    /* Fehlerbehandlung */
}

laut Manpages POSIX-konform ...

CONFORMING TO
       POSIX, SVr4.  SVr4 does not document the EINTR condition.
Repetition is a sign of stupidity. Repetition is a sign of stupidity. Repetition is a sign of stupidity.
Mikey
SP Team
Avatar
Member since Nov 2002
641 posts
falls Du SA_RESTART verwendest musst du mit XOPEN_SOURCE=500 kompilieren statt mit POSIX_SOURCE
Steppenwolf
Schläfer
Avatar
Member since Nov 2002
1535 posts
ok, danke!
komischerweise hat es mit ansi aber ohne posix nicht funktioniert, nur wenn ich beides weggelassen habe.
kannst du (oder jemand anderes) vielleicht kurz erklaeren, was es mit diesen flags und zugehoerigen standards auf sich hat? wie man sieht, hab ich das nicht wirklich verstanden...
Mikey
SP Team
Avatar
Member since Nov 2002
641 posts
klar du siehst in der Manpage zur jeweiligen Funktion in welchen Standards diese grundsätzlich enthalten ist
CONFORMING TO
POSIX, SVr4.  SVr4 does not document the EINTR condition.

Nun kann es, wie in diesem Fall vorkommen, dass einzelne Flags nicht in allen Standards enthalten sind, so etwas wird dann unter Notes erwähnt.

The POSIX spec only defines SA_NOCLDSTOP.  Use of other sa_flags is non-portable.

normalerweise steht es auch auf der Aufgabenstellung wenn nicht mit POSIX_SOURCE kompiliert werden kann, aber die Verwendung von SA_RESTART ist hier ja nicht zwingend also ist das ganze auch POSIX konform realisierbar!
Mikey
SP Team
Avatar
Member since Nov 2002
641 posts
Und wegen -ansi -> sigaction ist ja wie aus der manpage ersichtlich nicht in ANSI C enthalten.
Wenn Du also -ansi angibst nimmt der gcc nur noch Sachen die ANSI-C konform sind.

Wenn du dem gcc GAR NICHTS mit gibst nimmt er alles was er finden kann.

Wenn Du neben ansi auch noch andere Makros wie D_XOPEN.. nimmst, wird die "Vereinigungsmenge" der Funktionen genommen ;)
The Void
Griesgram und Zyniker
Member since Oct 2002
154 posts
Wie bring ich eigentlich meine Hintergrundprozesse dazu, das SIGINT zu ignorieren?

Ist das eigentlich normal, wenn ich einen Signalhandler beim Starten der Shell registriere, dass Vordergrundprozesse durch einen Interrupt ordnungsgemäß sterben, meine Hintergrundprozesse aber zu Zombies mutieren?

Und wieso wird meine Shell gekillt, wenn ich nur einen Prompt vor mir habe und einen Interrupt auslöse?

Erscheint mir alles ein bisschen suspekt  :#:
Welcome to the worst nightmare of all --- Reality!
frahi
Avatar
Member since Nov 2002
777 posts
Quote by The Void:
Wie bring ich eigentlich meine Hintergrundprozesse dazu, das SIGINT zu ignorieren?
Die Signalbehandlung bleibt ueber das exec hinweg erstmal erhalten, solang bis das da umgesetzt wird

Quote by The Void:
Ist das eigentlich normal, wenn ich einen Signalhandler beim Starten der Shell registriere, dass Vordergrundprozesse durch einen Interrupt ordnungsgemäß sterben, meine Hintergrundprozesse aber zu Zombies mutieren?
"ordnungsgemäß sterben" na rat mal, wer dafuer sorgt, dass die das tun! genau die shell aus der heraus du die trsh gestartet hast *g*
Was willst du eigentlich genau wissen?

Quote by The Void:
Und wieso wird meine Shell gekillt, wenn ich nur einen Prompt vor mir habe und einen Interrupt auslöse?
So ist eben die Semantik des Signals, die zu ändern steht dir (bei vielen) Signalen frei, bzw so frei wie eben die Aufgabenstellung *g*
The Void
Griesgram und Zyniker
Member since Oct 2002
154 posts
Quote by frahi:
"ordnungsgemäß sterben" na rat mal, wer dafuer sorgt, dass die das tun! genau die shell aus der heraus du die trsh gestartet hast *g*
Was willst du eigentlich genau wissen?

Mich hätte interessiert, wieso meine aus der trsh gestarteten Hintergrundprozesse in eine Zombiezustand fallen, wenn ich einen aus der trsh gestarteten Vordergrundprozess mit Strg+C abschieße.

Ich würde mich freuen, wenn du deine umfassende Weisheit mit mir teilen würdest.
Welcome to the worst nightmare of all --- Reality!
tsunami
skankin´ foot
Avatar
Member since Jan 2003
352 posts
Andere Frage: Was füe ne PID muss ich kill denn mitgeben, dass das SIGQUIT nur an alle Sohn-Prozesse geschickt wird? Wenn man für pid die 0 wählt wird anscheinend auch die trsh selbst ge"quit"et...  :-/
once you had a dream
of oceans, and sunken cities;
memories of things you´ve never known
and you have never known...   (Michael Stipe)
Ford Prefect
Pangalaktischer- Donnergurgler-Trinker
(Administrator)
Avatar
Member since Oct 2002
3298 posts
ich hab jetzt da noch nix gemacht, aber ich geh mal davon aus, die PIDs derer prozesse, die sich killen sollen?
;)
also jew...
Quote: <mute> mit Miranda macht irc kein spass :P <Loki|muh> dann geh doch wieder :)
<mute> ich benutze kein miranda <Loki|muh> na und? :)
tsunami
skankin´ foot
Avatar
Member since Jan 2003
352 posts
das würde bedeuten ich müsste die PIDs aller Sohnprozesse, die jemals erzeugt wurden, irgendwo speichern und im INTERRUPT-Fall mit kill ein SIGQUIT an all die Prozesse einzeln schicken? Klingt nach Arbeit..  :-/
once you had a dream
of oceans, and sunken cities;
memories of things you´ve never known
and you have never known...   (Michael Stipe)
Steppenwolf
Schläfer
Avatar
Member since Nov 2002
1535 posts
ja, aber die musst du sowieso irgendwo speichern (sogar mit kommandozeilenaufruf), damit du sie spaeter mit waitpid () einsammeln kannst. ich weiss ja nicht, wie du das bis jetzt realisiert hast?!
dafuer kannst du aber glaube ich die joblist nehmen (vom mikey, nicht die vom lehrstuhl, siehe anderer thread). ich weiss das nicht so genau, weil ich mir schon selber eine struktur gemacht hatte (nach unendlichen segfaults funktioniert diese nun auch). btw: ist das ok, wenn ich die joblist NICHT benutze, sondern etwas selberdefiniertes?
Mikey
SP Team
Avatar
Member since Nov 2002
641 posts
@steppenwolf: nein bitte benutzt die vorgegebene jobliste.. (siehe aufgabestellung..)

die in meinem wwwcip ist bis auf den einen free mit der im /pub identisch ;)
Es ist auch kein Problem die vom Lehrstuhl zu verwenden weil euch das sicher nicht als Fehler angekreidet wird, nur zum Testen auf Memory Leaks ist die natürlich denkbar ungeeignet..
Close Smaller – Larger + Reply to this post:
Verification code: VeriCode Please enter the word from the image into the text field below. (Type the letters only, lower case is okay.)
Smileys: :-) ;-) :-D :-p :blush: :cool: :rolleyes: :huh: :-/ <_< :-( :'( :#: :scared: 8-( :nuts: :-O
Special characters:
Page:  1  2  3  next 
Go to forum
Datenschutz | Kontakt
Powered by the Unclassified NewsBoard software, 20150713-dev, © 2003-2011 by Yves Goergen