[C] Seltsames Sonderzeichen bei IRC-Befehlen

trench140

Mitglied
Hallo allerseits,
ich bastel mir gerade einen kleinen IRC-Client. Connecten funktioniert, antworten auf Server-Ping ebenfalls.

Nun habe ich mir gerade eben mal spasseshalber angeschaut, was mein Client so empfängt, wenn ich verschiedenste Kommandos ausprobiere, und bin dabei unter anderem z.B. hierauf gestoßen:

Code:
bli!~bla@blub PRIVMSG myclient :?VERSION?

Was mich stört, sind die beiden (bei manchen Befehlen auch nur einer) Smileys.
Wenn ich mir das Zeichen als Integer-Wert ausgeben lasse, erhalte ich 1.
Hilft mir auch nicht viel.
Nachdem ich nun etwas gegooglet habe und geschaut habe, wie andere Implementierungen damit umgehen habe ich gesehen, dass viele die empfangen Strings etwa so checken:

Code:
strcmp("\1VERSION\1",buffer);

Meine Frage ist nun, was bedeutet dieses "\1"? Ich finde im RFC 1459 nirgendwo einen Hinweis, dass z.B. der VERSION-Befehl in derartige Zeichen eingeschlossen werden muss.

Ich könnte nun natürlich einfach sagen "Ok, das ist halt \1, fertig". Aber ich möchte gerne verstehen, warum dem so ist, denn "\1" finde ich nicht als explizit angegebenes Steuerzeichen. Am ehesten würde ich noch vermuten, dass es oktal 1 wäre, aber dann müsste doch als Integer-Wert 8 (edit: Denkfehler, es müsste trotzdem 1 sein) rauskommen, oder? Zumal ich dann immer noch nicht verstehen, was dieses Zeichen zu bedeuten hat.

Wäre also toll, wenn mir jemand das erklären könnte.

Gruß,
Trench

P.S.: Mir erschien es am sinnvollsten, das Ganze hierher zu packen, weil ich unter C programmiere.
 
Zuletzt bearbeitet:
Zurück