modem_write()

Записать строку в устройство

Прототип:

#include <sys/modem.h>
int modem_write( int fd,
char *str );

Аргументы:

fd
The file descriptor for the device that you want to write to; see modem_open().
str
The string that you want to write.

Библиотека:

libc

Описание:

The modem_write() function writes the string str to the device specified by the file descriptor fd. Just before writing each character, all buffered input from the same device is flushed. After writing each character, an attempt to read an echo is made. The intent is to write a string without its appearing back in the input stream even if the device is echoing each character written.

If the \ character appears in str, then the character following it is interpreted by modem_write(), and instead of both being written, they're treated as a special escape sequence that causes the following actions to be taken:

Escape Description
\r Output a carriage return.
\n Output a newline.
\xhh Output the single character whose hex representation follows as hh.
\B Send a 500 msec break on the line using tcsendbreak().
\D Drop the line for 1 second using tcdropline().
\Phh Pause for hh 1/10 of a second where hh is two hex characters.

Возвращаемое значение:

0
Успешное завершение.
-1
Возникла ошибка. Код ошибки записан в errno.

Коды ошибок:

EAGAIN
The O_NONBLOCK flag is set for the file descriptor, and the process would be delayed in the write operation.
EBADF
The file descriptor, fildes, isn't a valid file descriptor open for writing.
EINTR
The write operation was interrupted by a signal, and either no data was transferred, or the resource manager responsible for that file doesn't report partial transfers.
EIO
A physical I/O error occurred. The precise meaning depends on the device.
EPIPE
An attempt was made to write to a pipe (or FIFO) that isn't open for reading by any process. A SIGPIPE signal is also sent to the process.

Классификация:

ЗОСРВ «Нейтрино»

Точка остановки потока
Да
Обработчик прерываний
Нет
Обработчик сигналов
Да
В потоке
Да

Тематические ссылки:

modem_open(), modem_read(), modem_script()




Предыдущий раздел: Описание API системной библиотеки