open and read half write