Open Sound System
OSS 4.x Programmer's Guide

Do you have problems with sound/audio application development? Don't panic! Click here for help!


Sets the trigger treshold for select()


int nbytes=Number of bytes;
ioctl(fd, SNDCTL_DSP_LOW_WATER, &nbytes);

The above code fragment lacks all error checks for clarity. Real world applications must always check for the errors and handle them as described below. Also most OSS ioctl calls will return information in the argument variable and it's usually necessary to check it too.


This ioctl call can be used to set the trigger level for select/poll. After this level is set the select/poll call will report read activity on the device only if the number of recorded bytes in the device buffer is greater or equal than the low water mark. Write event will be reported only in there is ar least watermark bytes of free space in the buffer.

It's rarely necessary to set this parameter. By default OSS will set the low water level equal to the fragment size which is optimal in most cases.

Compatibility issues

This call is supported only by OSS 4.0. It's not supported by the older OSS versions or the freeware OSS clones. Older OSS versions will return errno=EINVAL. In that case the application should assume that the low water limit is set to 1 bytes.

OSS ioctl return values

The return value from the OSS ioctl calls will be -1 if a fatal error occurred. Other values mean that the ioctl call was more or less successful. However in most cases the application must check the value returned in the argument to see what was the accepted value.

Please see the Possible error codes (errno) returned by OSS calls section for more info about the error codes returned by OSS.

Sample programs

No sample programs available

Copyright (C) 4Front Technologies, 2007. All rights reserved.
Back to index OSS web site