Hmm, the specs don't actually say that opening RDWR only works
Warning - basing this on the OSS API is probably a mistake. Although ALSA supports the OSS API, its also preferable to use the ALSA API for a variety of reasons, most of them related to interoperability with different audio interfaces and user configured I/O configurations.
Is it possible to mmap write-only memory? If not that may explain Linux's insistence on being able to read from the fd: since the mmap
Please do *NOT* use the OSS API for mmap access. It offers no chance to interpose a user-space library between the app code and the driver system, which means that the code will not work in situations where the user has requested use of a not-purely-hardware device.
--p