Чтение онлайн

на главную - закладки

Жанры

Разработка ядра Linux
Шрифт:

• 

ssize_t aio_read(struct kiocb *iocb,

char *buf, size_t count, loff_t offset);

Эта функция запускает асинхронную операцию считывания

count
байт данных из файла, который описывается параметром
iocb
, в буфер памяти, описанный параметром
buf
. Эта функция вызывается из системного вызова
aio_read
.

• 

ssize_t write(struct file *file,

const char *buf, size_t count, loff_t* offset);

Эта

функция записывает
count
байт данных в указанный файл, начиная с позиции
offset
. Данная функция вызывается из системного вызова
write
.

• 

ssize_t aio_write(struct kiocb *iocb,

const char *buf, size_t count, loff_t offset);

Эта функция запускает асинхронную операцию записи

count
байт данных в файл, описываемый параметром
iocb
, из буфера памяти, на который указывает параметр
buf
. Данная функция вызывается из системного вызова
aio_write
.

• 

int readdir(struct file *file, void *dirent, filldir_t filldir);

Эта функция возвращает следующий элемент из списка содержимого каталога. Данная функция вызывается из системного вызова

readdir
.

• 

unsigned int poll(struct file *file,

struct poll_table_struct *poll_table);

Эта функция переводит вызывающий процесс в состояние ожидания для ожидания действий, которые производятся с указанным файлом. Она вызывается из системного вызова

poll
.

• 

int ioctl(struct inode *inode,

struct file *file, unsigned int cmd, signed long arg);

Эта функция используется для того, чтобы отправлять устройствам пары значений команда/аргумент. Функция используется, когда открытый файл — это специальный файл устройства. Данная функция вызывается из системного вызова

ioctl
.

• 

int mmap(struct file *file, struct vm_area_struct *vma);

Эта функция отображает указанный файл на область памяти в указанном адресном пространстве и вызывается из системного вызова

mmap
.

• 

int open(struct inode *inode, struct file *file);

Эта функция создает новый файловый объект и связывает его с указанным файловым индексом. Она вызывается из системного вызова

open
.

• 

int flush(struct file *file);

Эта функция вызывается подсистемой VFS, когда уменьшается счетчик ссылок на открытый файл. Назначение данной функции зависит от файловой системы.

• 

int release(struct inode *inode, struct file *file);

Эта

функция вызывается подсистемой VFS, когда исчезает последняя ссылка на файл, например, когда последний процесс, который использовал соответствующий файловый дескриптор, вызывает функцию
close
или завершается. Назначение этой функции также зависит от файловой системы.

• 

int fsync(struct file *file,

struct dentry *dentry, int datasync);

Эта функция вызывается из системного вызова

fsync
для записи на диск всех закэшированных данных файла.

• 

int aio_fsync(struct kiocb *iocb, int datasync);

Эта функция вызывается из системного вызова

aio_fsync
для записи на диск всех закэшированных данных файла, связанного с параметром
iocb
.

• 

int fasync(int fd, struct file *file, int on);

Эта функция разрешает или запрещает отправку сигнала для уведомлении о событиях при асинхронном вводе-выводе.

• 

int lock(struct file *file, int cmd, struct file_lock *lock);

Эта функция управляет файловыми блокировками для данного файла.

• 

ssize_t readv(struct file *file,

const struct iovec *vector, unsigned long count, loff_t* offset);

Эта функция вызывается из системного вызова

readv
для считывания данных из указанного файла в count буферов, которые описываются параметром
vector
. После этого указатель текущей позиции файла должен быть соответственным образом увеличен.

ssize_t writev(struct file *file,

const struct iovec *vector, unsigned long count, loff_t *offset);

Эта функция вызывается из системного вызова

writev
для записи в указанный файл буферов, описанных параметром
vector
; количество буферов равно
count
. После этого должно быть соответственным образом увеличено значение текущей позиции в файле.

ssize_t sendfile(struct file *file,

loff_t *of fset, size_t size, read_actor_t actor, void *target);

Эта функция вызывается из системного вызова

sendfile
для копирования данных из одного файла в другой. Она выполняет операцию копирования исключительно в режиме ядра и позволяет избежать дополнительного копирования данных в пространство пользователя.

• 

ssize_t sendpage(struct file *file,

struct page *page, int offset, size_t size,

loff_t *pos, int more);

Эта функция используется для отправки данных из одного файла в другой.

Поделиться:
Популярные книги

Измена. Тайный наследник

Лаврова Алиса
1. Тайный наследник
Фантастика:
фэнтези
5.00
рейтинг книги
Измена. Тайный наследник

Инквизитор Тьмы

Шмаков Алексей Семенович
1. Инквизитор Тьмы
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Инквизитор Тьмы

Наследник

Майерс Александр
3. Династия
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Наследник

Ротмистр Гордеев 3

Дашко Дмитрий
3. Ротмистр Гордеев
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Ротмистр Гордеев 3

(Не)нужная жена дракона

Углицкая Алина
5. Хроники Драконьей империи
Любовные романы:
любовно-фантастические романы
6.89
рейтинг книги
(Не)нужная жена дракона

Идеальный мир для Лекаря 28

Сапфир Олег
28. Лекарь
Фантастика:
юмористическое фэнтези
аниме
фэнтези
5.00
рейтинг книги
Идеальный мир для Лекаря 28

Сыночек в награду. Подари мне любовь

Лесневская Вероника
1. Суровые отцы
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Сыночек в награду. Подари мне любовь

Инквизитор Тьмы 2

Шмаков Алексей Семенович
2. Инквизитор Тьмы
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Инквизитор Тьмы 2

Генерал Скала и ученица

Суббота Светлана
2. Генерал Скала и Лидия
Любовные романы:
любовно-фантастические романы
6.30
рейтинг книги
Генерал Скала и ученица

Искатель 1

Шиленко Сергей
1. Валинор
Фантастика:
фэнтези
попаданцы
рпг
5.00
рейтинг книги
Искатель 1

Сердце Дракона. Том 10

Клеванский Кирилл Сергеевич
10. Сердце дракона
Фантастика:
фэнтези
героическая фантастика
боевая фантастика
7.14
рейтинг книги
Сердце Дракона. Том 10

Печать мастера

Лисина Александра
6. Гибрид
Фантастика:
попаданцы
технофэнтези
аниме
фэнтези
6.00
рейтинг книги
Печать мастера

Выстрел на Большой Морской

Свечин Николай
4. Сыщик Его Величества
Детективы:
исторические детективы
полицейские детективы
8.64
рейтинг книги
Выстрел на Большой Морской

Кодекс Крови. Книга VII

Борзых М.
7. РОС: Кодекс Крови
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Кодекс Крови. Книга VII