immer wieder lese ich von sogenannten „File Descriptors“, die irgendein Limit bei Server-Software darstellen. Kann mir jemand erklären was ein File Descriptor ist, wieviele man davon für was braucht, wieviel es maximal sein können bzw. wo man den Maximalwert einstellen kann…
immer wieder lese ich von sogenannten „File Descriptors“, die
irgendein Limit bei Server-Software darstellen. Kann mir
jemand erklären was ein File Descriptor ist, wieviele man
davon für was braucht, wieviel es maximal sein können bzw. wo
man den Maximalwert einstellen kann…
Ein „Files Descriptor“ ist meines Wissens einfach eine Ganzzahlvariable, die einer Datei zugeordnet wird, wenn sie geöffnet wird. Jetzt hängt es wohl vom System ab, wie diese Descriptoren definiert sind. Vielleicht „short int“ oder „unsigned int“? Ich weiss es ehrlich gesagt nicht. Aber auch diese Grenzen sind dann Systemabhängig.
Bei Servern kann es allerdings vorkommen, dass sehr viele Dateien gleichzeitig geöffnet werden sollen. Da kann es schon mal eng werden. Besonders, wenn eine Anwendung ein „descriptor leak“ hat, d.h. „vergisst“ Dateien nach der Benutzung ordnungsgemäß zu schliessen. Dann hat man irgendwann keine Descriptoren mehr übrig.
btw: Maximalwert …
So, ich habe mittlerweile auch herausgefunden, wo der Maximalwert eingestellt wird. Du findest ihn in der stdio.h, Punkt „FOPEN_MAX“. Standard ist wohl 256 … nicht sehr viel für einen Server.