|
Hauptseite - Welches System? - Hardware - Software - Emulatoren - |
Internet MausNet Programmieren Verweise Über |
Mit den Stringfunktionen lassen sich die 4 Bytes des Cookie-Ids in einen String kopieren und damit auch als String ausgeben, wenn sie aus darstellbaren Zeichen ohne Leerzeichen bestehen. Für einen Benutzer ist es einfacher, mit dem Kürzel zu arbeiten, da es aussagekräftiger ist und sich damit auch leichter merken läßt. Die Kopie wurde mit memcpy durchgeführt, da die abschließende Null im Cookie nicht vorhanden ist und deshalb immer 4 Bytes kopiert werden müssen.
#include <string.h> #include <stdio.h> #include <ctype.h> #include "cookie.h" void CookieSetL(CookieEntry *Cookie,long Name,long Value) { Cookie->name.name_long = Name; Cookie->value = Value; } void CookieSetS(CookieEntry *Cookie,char *Name,long Value) { memcpy(Cookie->name.name_array,Name,4); Cookie->value = Value; } void CookiePrint(CookieEntry *Cookie) { char Name[5]; if (isgraph(Cookie->name.name_array[0]) && isgraph(Cookie->name.name_array[1]) && isgraph(Cookie->name.name_array[2]) && isgraph(Cookie->name.name_array[3])) { memcpy(Name,Cookie->name.name_array,4); Name[4] = '\0'; printf("Name des Cookies: %s\n", Name); } else printf("Name des Cookies: %d\n", Cookie->name.name_long); printf("Wert des Cookies: %d\n", Cookie->value); } void CookieInput(CookieEntry *Cookie) { printf("Name des Cookies (long): "); scanf("%ld\n", &(Cookie->name.name_long)); printf("Wert des Cookies (long): "); scanf("%ld\n", &(Cookie->value)); } int CookieIsNullCookie(CookieEntry *Cookie) { return Cookie->name.name_long == NULL_COOKIE; } int CookieIsCookie(CookieEntry *Cookie,long Name) { return Cookie->name.name_long == Name; } int CookieRead(CookieEntry *Cookie,FILE *stream) { return(fread(Cookie,sizeof(CookieEntry),1,stream) == 1); } int CookieWrite(CookieEntry *Cookie,FILE *stream) { return(fwrite(Cookie,sizeof(CookieEntry),1,stream) == 1); }
English version not yet available. |