O_NDELAY read was broken in UNIX System III as originally distributed. This was discovered (and fixed) at Geotronics Corp. shortly after I left and should have been fixed by your UNIX vendor. I am told that the fix is simple and obvious but that is all I can recall about it.