Записать строку в устройство
#include <sys/modem.h>int modem_write( int fd,char *str );
libc
Функция modem_write() записывает строку str в устройство, связанное с файловым дескриптором fd. Перед записью каждого символа, весь буферизованный ввод с данного устройства сбрасывается. После записи каждого символа происходит попытка чтения этих символов. Цель состоит в том, чтобы записать строку так, чтобы она не появлялась во входном потоке, даже если устройство повторяет каждый записанный символ.
Если символ \ появляется в строке str, следующий символ интерпретируется функцией modem_write(), и вместо записи обоих символов, они интерпретируются как специальная escape-последовательность, которая вызывает следующие действия:
Последовательность | Описание |
---|---|
\r | Вывод символа перевода каретки. |
\n | Вывод символа новой строки. |
\xhh | Вывод одиночного символа, который описан с помощью шестнадцатеричного значения hh. |
\B | Отправить 500-миллисекундную паузу на линию с помощью tcsendbreak(). |
\D | Отсоединить канал на 1 секунду, используя tcdropline(). |
\Phh | Пауза на hh 1/10 секунды, где hh это символы двух шестнадцатиричных цифр. |
O_NONBLOCK
установлен при открытии файлового дескриптора fd, процесс будет заблокирован во время операции записи. SIGPIPE
также отправляется процессу. ЗОСРВ «Нейтрино»
modem_open(), modem_read(), modem_script()
Предыдущий раздел: Описание API системной библиотеки