Чтобы удостовериться, что файл был открыт в режиме, совместимом с операцией чтения, надо вызвать вспомогательную функцию
Возвращает: Число считанных байтов или код завершения, при помощи вспомогательного макроса
В качестве примера с возвратом только данных см. ниже раздел «Простой пример функции
int io_readlink(resmgr_context_t *
RESMGR_HANDLE_T *
Классификация: Функция установления соединения
Обработчик по умолчанию: Нет
Вспомогательные функции:
Клиентская функция:
Сообщения: IO_CONNECT, подтип IO_CONNECT_READLINK
Структура данных:
struct _io_connect {
// Внутренние поля (как описано выше)
uint16_t
uint8_t
uint16_t
char
};
struct _io_connect_link_reply {
uint32_t
uint8_t
uint8_t
uint32_t
uint16_t
uint16_t
};
typedef union {
struct _io_connect
struct _io_connect_link_reply
} io_open_t;
Описание: Отвечает за чтение содержимого символьной связи (линка), как определено полем
Возвращает: Код завершения, при помощи вспомогательного макроса
int io_rename(resmgr_context_t *
RESMGR_HANDLE_T *
Классификация: Функция установления соединения
Обработчик по умолчанию: Нет
Вспомогательные функции:
Клиентская функция:
Сообщение: _IO_CONNECT, подтип _IO_CONNECT_RENAME
Структура данных:
struct _io_connect {
// internal fields (as described above)
uint16_t
uint8_t
uint16_t
char
};
struct _io_connect_link_reply {
uint32_t
uint8_t
uint8_t
uint32_t
uint16_t
uint16_t
};
typedef union _io_rename_extra {
char
} io_rename_extra_t;
typedef union {
struct _io_connect
struct _io_connect_link_reply
} io_rename_t;
Описание: Выполняет операцию переименования, получив на вход первоначальное имя в элементе
Данная функция будет вызываться только для тех двух имен файлов, которые принадлежат одной и той же файловой системе (то есть одному и тому же устройству). Поэтому в проверке случаев, в которых надо было бы возвращать EXDEV, нет никакой необходимости. Это ничуть не мешает вам возвращать EXDEV — например, если вы не хотите выполнять
mv
выполнит сначала cp
, а потом rm
(библиотечная функция Также перед вызовом этой функции должны быть разрешены все символьные связи (где это применимо), а переданные имена путей должны быть абсолютны и относиться к файловой системе, за которую отвечает данный администратор ресурсов.
Бьерн Страуструп , Бьёрн Страуструп , Валерий Федорович Альмухаметов , Ирина Сергеевна Козлова
Программирование, программы, базы данных / Базы данных / Программирование / Учебная и научная литература / Образование и наука / Книги по IT