 <p>Its pretty easy to be honest with the native_handle. That's how I solved it.</p> <pre><code>#include &lt;sys/ioctl.h&gt; .... :::Constructor::: { //config for my device serialPort.open(port); serialPort.set_option(serial_port::baud_rate(9600)); serialPort.set_option(serial_port::parity(serial_port::parity::even)); serialPort.set_option(serial_port::character_size(serial_port::character_size(8))); serialPort.set_option(serial_port::stop_bits(serial_port::stop_bits::one)); serialPort.set_option(serial_port::flow_control(serial_port::flow_control::none)); fd = serialPort.native_handle(); // fd is of typ int } void setRTS(bool enabled //int fd = serialPort.native_handle(); int data = TIOCM_RTS; if (!enabled) ioctl(fd, TIOCMBIC, &amp;data); else ioctl(fd, TIOCMBIS, &amp;data); } void setDTR(bool enabled) { //int fd = serialPort.native_handle(); int data = TIOCM_DTR; if (!enabled) ioctl(fd, TIOCMBIC, &amp;data); // Clears the RTS pin else ioctl(fd, TIOCMBIS, &amp;data); // Sets the RTS pin } </code></pre>