Ja ne soll schon Schreibzugriff sein. Was bewirkt denn überhaupt der shared lock genau? Wenn andere Prozesse auch die Datei lesen können, warum soll sie dann überhaupt "gelockt" sein?
Vielleicht gegen weitere Schreibzugriffe?
Wenn Du in einer record-strukturierten Datei nur den Inhalt einer Zeile ändern willst, dann darf niemand sonst diese Zeile gleichzeitig schreiben können - aber andere Prozesse sollten (auf eigenes Risiko, daß sich die von ihnen gelesene Zeile gerade ändert) durchaus lesen dürfen, ohne Dich zu stören.