Hello,
Hi,
Nee, das geht nicht vernünftig.
Wenn die entfernte Datei, die der Ressource zugrundeliegt, gesperrt ist, dann bekommt man aus der Funktion gar nichts, weil die solange wartet, bis sie wieder lesen kann, bzw. das Read-Timeout greift. Das ist aber üblicherweise auf "ganz schön lange" eingestellt, bzw. auf "endlos".
Was und wann ein entfernter Webserver antwortet oder nicht antwortet, hängt nicht davon ab, wie du als Client den HTTP-Request machst.
Apache berücksichtigt für die HTTP-Requests das advisory Locking des lokalen Filesystems, was ja auch richtig ist.
Und darauf hat die „Art“ des Zugriffs, die du wählst - „namensbasiert“ vs. „handle-basiert“ - keinerlei Einfluss.
Hast Du es denn nun wenigstens mal selber ausprobiert, oder plapperst Du nur nach, was Andere Dir vorplappern?
Selbstverständlich kann ich bei den handle-basierten Funktionen jede Schicht gezielt und einzeln auswerten, natürlich aufeinander aufbauend. Wenn der Socket nicht klappt, brauch ich gar nicht erst einen Leseversuch vorzunemehmen. Wenn aber ein Socket eröffnet werden kann, und ich dann nicht lesen kann, kann ich bei der handle-basierten Vorgehensweise den Stream-Kontext abfragen. Und der sagt mir dann, warum die Ressource nicht lesbar war.
Diese Möglichkeit stellt mir die "Schwarze-Kisten-Funktion" trotz ihrer irrwitzigen vielen Schalter und "local source populated arrays" nicht zur Verfügung. Aber vielleicht bauen die das ja auch noch ein? Dann wäre der Unsinn komplett.
Mit den diskreten Funktionen, die mit Ressource-Identifier (Handle) arbeiten, kann ich das schon immer...
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg