WebWork Magazin - Webseiten erstellen lassen, Online Medien, html

Webhoster, Webhosting Provider und Domain registrieren

Home | Registrieren | Einloggen | Suchen | Aktuelles | GSL-Webservice | Suleitec Webhosting
Reparatur-Forum | Elektro forum | Ersatzteilshop Haushalt und Elektronik


Homepage und Webhosting-Forum

Hardware, Grafikkarte, Prozessor, Lüfter, Festplatte, SSD, Netzteil, Speicher, Flash, USB, Sata, Betriebssystem, Windows 8, Windows 10, Mac, MAC OS, Linux, Debian, Ubunto, Suse, Zip, Outlook, Firefox, Thunderbird und sonstige Software


Forum » Computer & Co - Hardware und Software » C: msgrcv() hängt sich auf » Antworten
Benutzername:
Passwort: Passwort vergessen?
Inhalt der Nachricht: Fett | Kursiv | Unterstrichen | Link | Bild | Smiley | Zitat | Zentriert | Quellcode| Kleiner Text
Optionen: Emailbenachrichtigung bei Antworten
 

Die letzten 5 Postings in diesem Thema » Alle anzeigen
von Efchen
Entschuldige, nein, das hilft nicht, das Manual hab ich auch ;-(
Und, mein msgrcv FAILT ja nicht, es liest einfach nicht mehr weiter.

Server2 steht im msgrcv und wartet auf irgendwas (was, das möcht ich wissen!), obwohl die MSQ gefüllt ist, auch mit dem richtigen mtype. Wenn msgrcv failen würde, dann hätte ich ja Zugriff auf die von Dir beschriebenen Fehlermeldungen über errno. Aber so weit kommts ja gar nicht. msgrcv wartet und tut nichts mehr.

Noch jemand Ideen?

Natürlich danke trotzdem für Deinen guten Willen, den wollte ich nicht schmählern!
von Marcus
ERRORS
The msgrcv() function will fail if:
[E2BIG]
The value of mtext is greater than msgsz and (msgflg & MSG_NOERROR) is 0.
[EACCES]
Operation permission is denied to the calling process. See IPC.
[EIDRM]
The message queue identifier msqid is removed from the system.
[EINTR]
The msgrcv() function was interrupted by a signal.
[EINVAL]
msqid is not a valid message queue identifier.
[ENOMSG]
The queue does not contain a message of the desired type and (msgflg & IPC_NOWAIT) is non-zero.

Hilft das weiter? C ist soo lange her
von Efchen
Moin,

habe da ein wichtiges Problem in C und hoffe, auch C-Programmierer lesen dieses Forum!

Es geht da um zwei Server, die mittels Message Queue miteinander kommunizieren. Server1 schickt hin und wieder ein paar Kommandos an Server2, z.B. um ihn zu fragen "Bist Du online?" oder um ihm mitzuteilen "Achtung, ich schicke Dir jetzt ein Kommando!"
Nach letzterem schickt Server1 in der Tag ein Kommando.

Wenn ich mir per "ipcs -q" die Message Queue ansehe, zeigt mir ein "R" an zweiter Stelle, dass Daten in der MSQ drinstehen. Server2 läuft und hängt im msgrcv(), das weiss ich, weil direkt vor dem msgrcv() ein Trace-Logfile geschrieben wird, und direkt danach auch. Der erste Trace ist im Logfile, der zweite nicht. Aber anscheinend liest Server2 diese MSQ nicht aus! Die Message Queue-ID ist korrekt und auch der Message Type stimmt mit dem gesendeten überein.

Bitte bitte, hat jemand nen Tipp, was ein msgrcv() zum Streiken animiert?

Danke,
-Efchen

Nach oben