Pracuję na serwerze proxy w c. Dość daleko posunąłem się używając kombinacji fredów i fgetów w różnych miejscach, ale chciałbym pogodzić się i zrozumieć różnicę. W poniższym przykładzie próbuję użyć fread w miejscu, w którym wcześniej użyłem fget pomyślnie. Zamiast tego mój serwer zawiesza się na linii przerażenia. Jaka jest różnica i dlaczego mój program się zawiesza?stragany na straganie, ale fget nie robi?
void HandleTCPClient(int clntSocket)
{
FILE *request = fdopen(clntSocket, "r");
char reader[2000];
size_t q; //typo before
while((q=fread(reader, 1, sizeof(reader), request))>0) { //hangs here!
printf("i read something!\n");
}
return;
}
dzięki!
EDIT: Więc jeśli uczynić linię "while ((q = fread (czytnik, 1, 1, request))> 0) {"
otrzymuję "Czytałem coś" w całym moim ekranie. ..
nie wiem co to oznacza. Czy to prawda, że fread dosłownie nie zrobi nic, jeśli w strumieniu nie ma co najmniej liczby postaci twojego bufora?
size_t q; przepraszam .. typ tłumaczenia na stos –