Hi,
Hallo,
nun ich will euch zunächst mal ein wenig C-Code zeigen.
// socket(), bind(), listen(), accept()
// Dann kommt folgender Code
char buf[512] = {0};
char* r = NULL;
FILE* fd = fdopen(socket, "r"); // socket stammt von accept()
printf("feof(): %d\n", feof(fd));
while(feof(fd) != EOF) {
r = fgets(buf, sizeof(buf), fd);
if(r != 0 && r != '\0') {
printf("%s", r);
} else {
break;
}
}
>
> Wie kann sowas sein und wie kann ich es (mein Problem) lösen?
Ich hoffe ich kann dir helfen, auch wenn ich den Unterschied zwischen Socket und File nicht kenne.
In deiner if-Abfrage steht erst "r != 0". r ist ein Pointer, wenndann hat er den Wert NULL.
Danach kommt "r != '\0'". Hier vergleichst du eine Adresse (Wert des Pointers mit '\0'. Was willst du damit erreichen?
Hier noch eine Beschreibung zum Rueckgabewert von fgets():
Zeiger auf den eingelesenen Zeichenvektor oder NULL bei Dateiende oder einem Fehler.
mfG,
steckl