Главная » (2) Системные вызовы ядра (функции языка Си)





ИМЯ


dup, dup2, dup3 - создать дубликат файлового дескриптора



ОБЗОР


#include <unistd.h>

int dup(int oldfd);
int dup2(int oldfd, int newfd);

#define _GNU_SOURCE /* Смотрите feature_test_macros(7) */
#include <fcntl.h> /* Определение констант O_* */
#include <unistd.h>

int dup3(int oldfd, int newfd, int flags);



ОПИСАНИЕ


Системный вызов dup() создаёт копию файлового дескриптора oldfd, используя для
нового дескриптора самый маленький свободный номер файлового дескриптора.

После успешного выполнения старый и новый файловые дескрипторы являются
взаимозаменяемыми. Они указывают на одно и то же открытое файловое описание
(смотрите open(2)< ... Читать дальше »

Категория: (2) Системные вызовы ядра (функции языка Си) | Просмотров: 581 | Добавил: Администратор | Дата: 17.11.2017 | Комментарии (0)





ИМЯ


delete_module - выгружает модуль ядра



ОБЗОР


int delete_module(const char *name, int flags);

Замечание: В заголовочных файлах glibc этой системный вызов отсутствует; смотрите
ЗАМЕЧАНИЯ.



ОПИСАНИЕ


Вызов delete_module() пытается удалить неиспользуемый загруженный модуль с именем
name. Если у модуля есть функция exit, то она выполняется перед выгрузкой.
Аргумент flags используется для изменения поведения системного вызова — это
описано далее. Данный системный вызов требует особых прав.

Удаление модуля выполняется по следующим правилам:

1. Если какой-то другой модуль зависит от выгружаемого (т.е., использует его
символы), то вызов завершается с ошибкой.

2. В противном случае, если счётчик ... Читать дальше »

Категория: (2) Системные вызовы ядра (функции языка Си) | Просмотров: 520 | Добавил: Администратор | Дата: 17.11.2017 | Комментарии (0)





ИМЯ


create_module - создать элемент загружаемого модуля



ОБЗОР


#include <linux/module.h>

caddr_t create_module(const char *name, size_t size);

Замечание: В заголовочных файлах glibc этой системный вызов отсутствует; смотрите
ЗАМЕЧАНИЯ.



ОПИСАНИЕ


Замечание: Данный системный вызов доступен только в ядрах до Linux 2.6.

create_module() пытается создать элемент загружаемого модуля и зарезервировать
память ядра, которая необходима для хранения модуля. Данный системный вызов
требует особых прав.



ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ


При успешном выполнении возвращается адрес в ядре, где будет располагаться модуль.
В случае ошибки возвращается -1, а errno устанавливается в соответствующее
... Читать дальше »

Категория: (2) Системные вызовы ядра (функции языка Си) | Просмотров: 508 | Добавил: Администратор | Дата: 17.11.2017 | Комментарии (0)





ИМЯ


open, openat, creat - открывает и, возможно, создаёт файл



ОБЗОР


#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>

int open(const char *pathname, int flags);
int open(const char *pathname, int flags, mode_t mode);

int creat(const char *pathname, mode_t mode);

int openat(int dirfd, const char *pathname, int flags);
int openat(int dirfd, const char *pathname, int flags, mode_t mode);

Требования макроса тестирования свойств для glibc (см. feature_test_macros(7)):

openat():
Начиная с glibc 2.10:
_POSIX_C_SOURCE >= 200809L
До glibc 2.10:
_ATFILE_SOURCE



ОПИСАНИЕ


Получив в pathname имя файла, open() возвращает ф ... Читать дальше »

Категория: (2) Системные вызовы ядра (функции языка Си) | Просмотров: 571 | Добавил: Администратор | Дата: 17.11.2017 | Комментарии (0)





ИМЯ


copy_file_range - копирует часть данных из одного файла в другой



ОБЗОР


#include <sys/syscall.h>
#include <unistd.h>

ssize_t copy_file_range(int fd_in, loff_t *off_in,
int fd_out, loff_t *off_out,
size_t len, unsigned int flags);



ОПИСАНИЕ


Системный вызов copy_file_range() выполняет внутриядерное копирование между двумя
файловыми дескрипторами без дополнительных накладных расходов по передаче данных
из ядра в пользовательское пространство и затем обратно в ядро. Он копирует до len
байт данных из файлового дескриптора fd_in в файловый дескриптор fd_out,
перезаписывая существующие данные внутри запрашиваемой области файла назначения.

Следующая семант ... Читать дальше »

Категория: (2) Системные вызовы ядра (функции языка Си) | Просмотров: 656 | Добавил: Администратор | Дата: 17.11.2017 | Комментарии (0)





ИМЯ


connect - инициирует соединение на сокете



ОБЗОР


#include <sys/types.h> /* Смотрите ЗАМЕЧАНИЯ */
#include <sys/socket.h>

int connect(int sockfd, const struct sockaddr *addr,
socklen_t addrlen);



ОПИСАНИЕ


Системный вызов connect() устанавливает соединение с сокетом, заданным файловый
дескриптором sockfd, ссылающимся на адрес addr. Аргумент addrlen определяет размер
addr. Формат адреса в addr определяется адресным пространством сокета sockfd;
подробнее можно узнать в socket(2).

Если сокет sockfd имеет тип SOCK_DGRAM, то адрес addr является адресом по
умолчанию, куда посылаются датаграммы, и единственным адресом, откуда они
принимаются. Если сокет имеет ти ... Читать дальше »

Категория: (2) Системные вызовы ядра (функции языка Си) | Просмотров: 528 | Добавил: Администратор | Дата: 17.11.2017 | Комментарии (0)





ИМЯ


close - закрывает файловый дескриптор



ОБЗОР


#include <unistd.h>

int close(int fd);



ОПИСАНИЕ


Функция close() закрывает файловый дескриптор, который после этого не ссылается ни
на один и файл и может быть использован повторно. Все блокировки (см. fcntl(2)),
связанные с соответствующим файлом и принадлежащие процессу, снимаются (независимо
от того, какой файловый дескриптор был ли использован для установки блокировки).

Если fd является последней копией какого-либо файлового дескриптора, ссылающегося
на используемое описание открытого файла, (см. open(2)), то ресурсы, связанные с
описанием открытого файла, освобождаются; если файловый дескриптор был последней
ссылкой на файл, удалённый с помощью unlink ... Читать дальше »

Категория: (2) Системные вызовы ядра (функции языка Си) | Просмотров: 554 | Добавил: Администратор | Дата: 17.11.2017 | Комментарии (0)

« 1 2 ... 52 53 54 55 56 ... 59 60 »