<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Всё для linux</title>
		<link>http://linux-forever.usite.pro/</link>
		<description>Мануалы linux на русском</description>
		<lastBuildDate>Fri, 24 Nov 2017 02:37:57 GMT</lastBuildDate>
		<generator>uCoz Web-Service</generator>
		<atom:link href="https://linux-forever.usite.pro/blog/rss" rel="self" type="application/rss+xml" />
		
		<item>
			<title>man 2 sync</title>
			<description>&lt;p&gt;&lt;br&gt;&lt;!-- Manpage converted by man2html 3.0.1 --&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ИМЯ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; sync, syncfs - записывает кэши файловых систем на диск&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ОБЗОР&lt;/H2&gt;&lt;p&gt;&lt;br&gt; #include &lt;unistd.h&amp;gt;&lt;br&gt;&lt;br&gt; void sync(void);&lt;br&gt;&lt;br&gt; int syncfs(int fd);&lt;br&gt;&lt;br&gt; Требования макроса тестирования свойств для glibc (см. &lt;B&gt;feature_test_macros(7)&lt;/B&gt;):&lt;br&gt;&lt;br&gt; sync():&lt;br&gt; _XOPEN_SOURCE &amp;gt;= 500&lt;br&gt; || /* начиная с glibc 2.19: */ _DEFAULT_SOURCE&lt;br&gt; || /* версии glibc &lt;= 2.19: */ _BSD_SOURCE&lt;br&gt;&lt;br&gt; syncfs():&lt;br&gt; _GNU_SOURCE&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ОПИСАНИЕ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; Вызов sync() приводит к записи в файловую систему всех отложенных изменений метаданных&lt;br&gt; файловой системы и кэшированных файловых данных.&lt;br&gt;&lt;br&gt; Вызов syncfs() подобен sync(), но синхронизирует только файловую систему, содержащую файл,&lt;br&gt; на который указывает открытый файловый дескриптор fd.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; При нормальном завершении работы syncfs() возвращает 0. В случае о...</description>
			<content:encoded>&lt;p&gt;&lt;br&gt;&lt;!-- Manpage converted by man2html 3.0.1 --&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ИМЯ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; sync, syncfs - записывает кэши файловых систем на диск&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ОБЗОР&lt;/H2&gt;&lt;p&gt;&lt;br&gt; #include &lt;unistd.h&amp;gt;&lt;br&gt;&lt;br&gt; void sync(void);&lt;br&gt;&lt;br&gt; int syncfs(int fd);&lt;br&gt;&lt;br&gt; Требования макроса тестирования свойств для glibc (см. &lt;B&gt;feature_test_macros(7)&lt;/B&gt;):&lt;br&gt;&lt;br&gt; sync():&lt;br&gt; _XOPEN_SOURCE &amp;gt;= 500&lt;br&gt; || /* начиная с glibc 2.19: */ _DEFAULT_SOURCE&lt;br&gt; || /* версии glibc &lt;= 2.19: */ _BSD_SOURCE&lt;br&gt;&lt;br&gt; syncfs():&lt;br&gt; _GNU_SOURCE&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ОПИСАНИЕ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; Вызов sync() приводит к записи в файловую систему всех отложенных изменений метаданных&lt;br&gt; файловой системы и кэшированных файловых данных.&lt;br&gt;&lt;br&gt; Вызов syncfs() подобен sync(), но синхронизирует только файловую систему, содержащую файл,&lt;br&gt; на который указывает открытый файловый дескриптор fd.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; При нормальном завершении работы syncfs() возвращает 0. В случае ошибки возвращается -1, а&lt;br&gt; errno устанавливается в соответствующее значение.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ОШИБКИ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; Вызов sync() всегда выполняется без ошибок.&lt;br&gt;&lt;br&gt; Вызов syncfs() может завершиться с ошибкой, по крайней мере, по следующей причине:&lt;br&gt;&lt;br&gt; EBADF Значение fd не является правильным файловым дескриптором.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ВЕРСИИ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; Системный вызов syncfs() впервые появился в Linux 2.6.39; поддержка в glibc добавлена в&lt;br&gt; версии 2.14.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;СООТВЕТСТВИЕ СТАНДАРТАМ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; sync(): POSIX.1-2001, POSIX.1-2008, SVr4, 4.3BSD.&lt;br&gt;&lt;br&gt; syncfs() есть только в Linux.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ЗАМЕЧАНИЯ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; Начиная с glibc 2.2.2 Linux-прототип sync() стал соответствовать различным стандартам. В&lt;br&gt; glibc 2.21 и старее он объявлялся как «int sync(void)» и вызов sync() всегда возвращал 0.&lt;br&gt;&lt;br&gt; В соответствии со стандартной спецификацией (например POSIX.1-2001), sync() только планирует&lt;br&gt; запись, и может закончить работу до того как запись будет на самом деле произведена. Однако&lt;br&gt; в Linux выполняется ожидание завершения операций ввода-вывода и поэтому sync() или syncfs()&lt;br&gt; предоставляют такие же гарантии как fsync при вызове для каждого файла в системе или&lt;br&gt; файловой системы, соответственно.&lt;br&gt;</content:encoded>
			<link>https://linux-forever.usite.pro/blog/man_2_sync/2017-11-24-849</link>
			<category>(2) Системные вызовы ядра (функции языка Си)</category>
			<dc:creator>Администратор</dc:creator>
			<guid>https://linux-forever.usite.pro/blog/man_2_sync/2017-11-24-849</guid>
			<pubDate>Fri, 24 Nov 2017 02:37:57 GMT</pubDate>
		</item>
		<item>
			<title>man 2 symlinkat</title>
			<description>&lt;p&gt;&lt;br&gt;&lt;!-- Manpage converted by man2html 3.0.1 --&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ИМЯ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; symlink, symlinkat - создаёт новое имя для файла&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ОБЗОР&lt;/H2&gt;&lt;p&gt;&lt;br&gt; #include &lt;unistd.h&amp;gt;&lt;br&gt;&lt;br&gt; int symlink(const char *target, const char *linkpath);&lt;br&gt;&lt;br&gt; #include &lt;fcntl.h&amp;gt; /* определения констант of AT_* */&lt;br&gt; #include &lt;unistd.h&amp;gt;&lt;br&gt;&lt;br&gt; int symlinkat(const char *target, int newdirfd, const char *linkpath);&lt;br&gt;&lt;br&gt; Требования макроса тестирования свойств для glibc (см. &lt;B&gt;feature_test_macros(7)&lt;/B&gt;):&lt;br&gt;&lt;br&gt; symlink():&lt;br&gt; _XOPEN_SOURCE &amp;gt;= 500 || _POSIX_C_SOURCE &amp;gt;= 200112L&lt;br&gt; || /* в версии glibc &lt;= 2.19: */ _BSD_SOURCE&lt;br&gt;&lt;br&gt; symlinkat():&lt;br&gt; Начиная с glibc 2.10:&lt;br&gt; _POSIX_C_SOURCE &amp;gt;= 200809L&lt;br&gt; До glibc 2.10:&lt;br&gt; _ATFILE_SOURCE&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ОПИСАНИЕ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; Вызов symlink() создаёт символьную ссылку с именем linkpath, которая содержит строку target.&lt;br&gt;&lt;br&gt; Символьные ссылки интерпретируются «на лету», как будто бы содержи...</description>
			<content:encoded>&lt;p&gt;&lt;br&gt;&lt;!-- Manpage converted by man2html 3.0.1 --&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ИМЯ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; symlink, symlinkat - создаёт новое имя для файла&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ОБЗОР&lt;/H2&gt;&lt;p&gt;&lt;br&gt; #include &lt;unistd.h&amp;gt;&lt;br&gt;&lt;br&gt; int symlink(const char *target, const char *linkpath);&lt;br&gt;&lt;br&gt; #include &lt;fcntl.h&amp;gt; /* определения констант of AT_* */&lt;br&gt; #include &lt;unistd.h&amp;gt;&lt;br&gt;&lt;br&gt; int symlinkat(const char *target, int newdirfd, const char *linkpath);&lt;br&gt;&lt;br&gt; Требования макроса тестирования свойств для glibc (см. &lt;B&gt;feature_test_macros(7)&lt;/B&gt;):&lt;br&gt;&lt;br&gt; symlink():&lt;br&gt; _XOPEN_SOURCE &amp;gt;= 500 || _POSIX_C_SOURCE &amp;gt;= 200112L&lt;br&gt; || /* в версии glibc &lt;= 2.19: */ _BSD_SOURCE&lt;br&gt;&lt;br&gt; symlinkat():&lt;br&gt; Начиная с glibc 2.10:&lt;br&gt; _POSIX_C_SOURCE &amp;gt;= 200809L&lt;br&gt; До glibc 2.10:&lt;br&gt; _ATFILE_SOURCE&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ОПИСАНИЕ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; Вызов symlink() создаёт символьную ссылку с именем linkpath, которая содержит строку target.&lt;br&gt;&lt;br&gt; Символьные ссылки интерпретируются «на лету», как будто бы содержимое ссылки было&lt;br&gt; подставлено вместо пути, по которому идёт поиск файла или каталога.&lt;br&gt;&lt;br&gt; Символьные ссылки могут содержать компоненты пути .., которые (если используются в начале&lt;br&gt; ссылки) ссылаются на родительский каталог того каталога, в котором находится ссылка.&lt;br&gt;&lt;br&gt; Символьная ссылка (также известная как «мягкая ссылка») может указывать как на существующий,&lt;br&gt; так и на несуществующий файлы; в последнем случае такая ссылка называется повисшей&lt;br&gt; (dangling).&lt;br&gt;&lt;br&gt; Права доступа символьной ссылки не имеют значения; принадлежность определённому владельцу&lt;br&gt; игнорируется при переходе по ссылке, но проверяется при удалении или переименовании ссылки,&lt;br&gt; а также ссылки в каталог с установленным закрепляющим (sticky) битом (S_ISVTX).&lt;br&gt;&lt;br&gt; Если linkpath существует, то он не будет перезаписан.&lt;br&gt;&lt;br&gt; symlinkat()&lt;br&gt; Системный вызов symlinkat() работает также как системный вызов symlink(), за исключением&lt;br&gt; случаев, описанных здесь.&lt;br&gt;&lt;br&gt; Если в linkpath задан относительный путь, то он считается относительно каталога, на который&lt;br&gt; ссылается файловый дескриптор newdirfd (а не относительно текущего рабочего каталога&lt;br&gt; вызывающего процесса, как это делается в symlink()).&lt;br&gt;&lt;br&gt; Если в linkpath задан относительный путь и значение newdirfd равно AT_FDCWD, то linkpath&lt;br&gt; рассматривается относительно текущего рабочего каталога вызывающего процесса (как&lt;br&gt; symlink()).&lt;br&gt;&lt;br&gt; Если в linkpath задан абсолютный путь, то newdirfd игнорируется.&lt;br&gt; EDQUOT Исчерпана пользовательская квота на ресурсы файловой системы. Ресурсами могут быть&lt;br&gt; иноды или дисковые блоки, в зависимости от реализации файловой системы.&lt;br&gt;&lt;br&gt; EEXIST linkpath уже существует.&lt;br&gt;&lt;br&gt; EFAULT Значение target или linkpath указывают за пределы доступного адресного пространства.&lt;br&gt;&lt;br&gt; EIO Произошла ошибка ввода-вывода.&lt;br&gt;&lt;br&gt; ELOOP Во время определения linkpath встретилось слишком много символьных ссылок.&lt;br&gt;&lt;br&gt; ENAMETOOLONG&lt;br&gt; Слишком длинное значение аргумента target или linkpath.&lt;br&gt;&lt;br&gt; ENOENT Компонент пути linkpath не существует или является повисшей символьной ссылкой или&lt;br&gt; значение target или linkpath равно пустой строке.&lt;br&gt;&lt;br&gt; ENOMEM Недостаточное количество памяти ядра.&lt;br&gt;&lt;br&gt; ENOSPC На устройстве, содержащем файл, нет места для создания нового элемента каталога.&lt;br&gt;&lt;br&gt; ENOTDIR&lt;br&gt; Компонент пути, использованный как каталог в linkpath, в действительности таковым не&lt;br&gt; является.&lt;br&gt;&lt;br&gt; EPERM Файловая система, содержащая linkpath, не поддерживает создание символьных ссылок.&lt;br&gt;&lt;br&gt; EROFS linkpath расположен в файловой системе, доступной только для чтения.&lt;br&gt;&lt;br&gt; В symlinkat() дополнительно могут возникнуть следующие ошибки:&lt;br&gt;&lt;br&gt; EBADF Значение newdirfd не является правильным файловым дескриптором.&lt;br&gt;&lt;br&gt; ENOENT Значение linkpath является относительным путём и newdirfd ссылается на каталог,&lt;br&gt; который был удалён.&lt;br&gt;&lt;br&gt; ENOTDIR&lt;br&gt; Значение linkpath содержит относительный путь и newdirfd содержит файловый&lt;br&gt; дескриптор, указывающий на файл, а не на каталог.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ВЕРСИИ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; Системный вызов symlinkat() был добавлен в ядро Linux версии 2.6.16; поддержка в glibc&lt;br&gt; доступна с версии 2.4.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;СООТВЕТСТВИЕ СТАНДАРТАМ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; symlink(): SVr4, 4.3BSD, POSIX.1-2001, POSIX.1-2008.&lt;br&gt;&lt;br&gt; symlinkat(): POSIX.1-2008.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ЗАМЕЧАНИЯ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; Не выполняется проверка target.&lt;br&gt;&lt;br&gt; При удаление имени, на который ссылается символьная ссылка, произойдёт удаление файла (если&lt;br&gt; только у него нет других жёстких ссылок). Если такое поведение нежелательно, используйте&lt;br&gt; &lt;B&gt;link(2)&lt;/B&gt;.&lt;br&gt;&lt;br&gt;</content:encoded>
			<link>https://linux-forever.usite.pro/blog/man_2_symlinkat/2017-11-24-848</link>
			<category>(2) Системные вызовы ядра (функции языка Си)</category>
			<dc:creator>Администратор</dc:creator>
			<guid>https://linux-forever.usite.pro/blog/man_2_symlinkat/2017-11-24-848</guid>
			<pubDate>Fri, 24 Nov 2017 02:37:36 GMT</pubDate>
		</item>
		<item>
			<title>man 2 symlink</title>
			<description>&lt;p&gt;&lt;br&gt;&lt;!-- Manpage converted by man2html 3.0.1 --&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ИМЯ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; symlink, symlinkat - создаёт новое имя для файла&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ОБЗОР&lt;/H2&gt;&lt;p&gt;&lt;br&gt; #include &lt;unistd.h&amp;gt;&lt;br&gt;&lt;br&gt; int symlink(const char *target, const char *linkpath);&lt;br&gt;&lt;br&gt; #include &lt;fcntl.h&amp;gt; /* определения констант of AT_* */&lt;br&gt; #include &lt;unistd.h&amp;gt;&lt;br&gt;&lt;br&gt; int symlinkat(const char *target, int newdirfd, const char *linkpath);&lt;br&gt;&lt;br&gt; Требования макроса тестирования свойств для glibc (см. &lt;B&gt;feature_test_macros(7)&lt;/B&gt;):&lt;br&gt;&lt;br&gt; symlink():&lt;br&gt; _XOPEN_SOURCE &amp;gt;= 500 || _POSIX_C_SOURCE &amp;gt;= 200112L&lt;br&gt; || /* в версии glibc &lt;= 2.19: */ _BSD_SOURCE&lt;br&gt;&lt;br&gt; symlinkat():&lt;br&gt; Начиная с glibc 2.10:&lt;br&gt; _POSIX_C_SOURCE &amp;gt;= 200809L&lt;br&gt; До glibc 2.10:&lt;br&gt; _ATFILE_SOURCE&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ОПИСАНИЕ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; Вызов symlink() создаёт символьную ссылку с именем linkpath, которая содержит строку target.&lt;br&gt;&lt;br&gt; Символьные ссылки интерпретируются «на лету», как будто бы содержи...</description>
			<content:encoded>&lt;p&gt;&lt;br&gt;&lt;!-- Manpage converted by man2html 3.0.1 --&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ИМЯ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; symlink, symlinkat - создаёт новое имя для файла&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ОБЗОР&lt;/H2&gt;&lt;p&gt;&lt;br&gt; #include &lt;unistd.h&amp;gt;&lt;br&gt;&lt;br&gt; int symlink(const char *target, const char *linkpath);&lt;br&gt;&lt;br&gt; #include &lt;fcntl.h&amp;gt; /* определения констант of AT_* */&lt;br&gt; #include &lt;unistd.h&amp;gt;&lt;br&gt;&lt;br&gt; int symlinkat(const char *target, int newdirfd, const char *linkpath);&lt;br&gt;&lt;br&gt; Требования макроса тестирования свойств для glibc (см. &lt;B&gt;feature_test_macros(7)&lt;/B&gt;):&lt;br&gt;&lt;br&gt; symlink():&lt;br&gt; _XOPEN_SOURCE &amp;gt;= 500 || _POSIX_C_SOURCE &amp;gt;= 200112L&lt;br&gt; || /* в версии glibc &lt;= 2.19: */ _BSD_SOURCE&lt;br&gt;&lt;br&gt; symlinkat():&lt;br&gt; Начиная с glibc 2.10:&lt;br&gt; _POSIX_C_SOURCE &amp;gt;= 200809L&lt;br&gt; До glibc 2.10:&lt;br&gt; _ATFILE_SOURCE&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ОПИСАНИЕ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; Вызов symlink() создаёт символьную ссылку с именем linkpath, которая содержит строку target.&lt;br&gt;&lt;br&gt; Символьные ссылки интерпретируются «на лету», как будто бы содержимое ссылки было&lt;br&gt; подставлено вместо пути, по которому идёт поиск файла или каталога.&lt;br&gt;&lt;br&gt; Символьные ссылки могут содержать компоненты пути .., которые (если используются в начале&lt;br&gt; ссылки) ссылаются на родительский каталог того каталога, в котором находится ссылка.&lt;br&gt;&lt;br&gt; Символьная ссылка (также известная как «мягкая ссылка») может указывать как на существующий,&lt;br&gt; так и на несуществующий файлы; в последнем случае такая ссылка называется повисшей&lt;br&gt; (dangling).&lt;br&gt;&lt;br&gt; Права доступа символьной ссылки не имеют значения; принадлежность определённому владельцу&lt;br&gt; игнорируется при переходе по ссылке, но проверяется при удалении или переименовании ссылки,&lt;br&gt; а также ссылки в каталог с установленным закрепляющим (sticky) битом (S_ISVTX).&lt;br&gt;&lt;br&gt; Если linkpath существует, то он не будет перезаписан.&lt;br&gt;&lt;br&gt; symlinkat()&lt;br&gt; Системный вызов symlinkat() работает также как системный вызов symlink(), за исключением&lt;br&gt; случаев, описанных здесь.&lt;br&gt;&lt;br&gt; Если в linkpath задан относительный путь, то он считается относительно каталога, на который&lt;br&gt; ссылается файловый дескриптор newdirfd (а не относительно текущего рабочего каталога&lt;br&gt; вызывающего процесса, как это делается в symlink()).&lt;br&gt;&lt;br&gt; Если в linkpath задан относительный путь и значение newdirfd равно AT_FDCWD, то linkpath&lt;br&gt; рассматривается относительно текущего рабочего каталога вызывающего процесса (как&lt;br&gt; symlink()).&lt;br&gt;&lt;br&gt; Если в linkpath задан абсолютный путь, то newdirfd игнорируется.&lt;br&gt; EDQUOT Исчерпана пользовательская квота на ресурсы файловой системы. Ресурсами могут быть&lt;br&gt; иноды или дисковые блоки, в зависимости от реализации файловой системы.&lt;br&gt;&lt;br&gt; EEXIST linkpath уже существует.&lt;br&gt;&lt;br&gt; EFAULT Значение target или linkpath указывают за пределы доступного адресного пространства.&lt;br&gt;&lt;br&gt; EIO Произошла ошибка ввода-вывода.&lt;br&gt;&lt;br&gt; ELOOP Во время определения linkpath встретилось слишком много символьных ссылок.&lt;br&gt;&lt;br&gt; ENAMETOOLONG&lt;br&gt; Слишком длинное значение аргумента target или linkpath.&lt;br&gt;&lt;br&gt; ENOENT Компонент пути linkpath не существует или является повисшей символьной ссылкой или&lt;br&gt; значение target или linkpath равно пустой строке.&lt;br&gt;&lt;br&gt; ENOMEM Недостаточное количество памяти ядра.&lt;br&gt;&lt;br&gt; ENOSPC На устройстве, содержащем файл, нет места для создания нового элемента каталога.&lt;br&gt;&lt;br&gt; ENOTDIR&lt;br&gt; Компонент пути, использованный как каталог в linkpath, в действительности таковым не&lt;br&gt; является.&lt;br&gt;&lt;br&gt; EPERM Файловая система, содержащая linkpath, не поддерживает создание символьных ссылок.&lt;br&gt;&lt;br&gt; EROFS linkpath расположен в файловой системе, доступной только для чтения.&lt;br&gt;&lt;br&gt; В symlinkat() дополнительно могут возникнуть следующие ошибки:&lt;br&gt;&lt;br&gt; EBADF Значение newdirfd не является правильным файловым дескриптором.&lt;br&gt;&lt;br&gt; ENOENT Значение linkpath является относительным путём и newdirfd ссылается на каталог,&lt;br&gt; который был удалён.&lt;br&gt;&lt;br&gt; ENOTDIR&lt;br&gt; Значение linkpath содержит относительный путь и newdirfd содержит файловый&lt;br&gt; дескриптор, указывающий на файл, а не на каталог.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ВЕРСИИ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; Системный вызов symlinkat() был добавлен в ядро Linux версии 2.6.16; поддержка в glibc&lt;br&gt; доступна с версии 2.4.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;СООТВЕТСТВИЕ СТАНДАРТАМ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; symlink(): SVr4, 4.3BSD, POSIX.1-2001, POSIX.1-2008.&lt;br&gt;&lt;br&gt; symlinkat(): POSIX.1-2008.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ЗАМЕЧАНИЯ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; Не выполняется проверка target.&lt;br&gt;&lt;br&gt; При удаление имени, на который ссылается символьная ссылка, произойдёт удаление файла (если&lt;br&gt; только у него нет других жёстких ссылок). Если такое поведение нежелательно, используйте&lt;br&gt; &lt;B&gt;link(2)&lt;/B&gt;.&lt;br&gt;&lt;br&gt;</content:encoded>
			<link>https://linux-forever.usite.pro/blog/man_2_symlink/2017-11-24-847</link>
			<category>(2) Системные вызовы ядра (функции языка Си)</category>
			<dc:creator>Администратор</dc:creator>
			<guid>https://linux-forever.usite.pro/blog/man_2_symlink/2017-11-24-847</guid>
			<pubDate>Fri, 24 Nov 2017 02:37:11 GMT</pubDate>
		</item>
		<item>
			<title>man 2 swapon</title>
			<description>&lt;p&gt;&lt;br&gt;&lt;!-- Manpage converted by man2html 3.0.1 --&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ИМЯ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; swapon, swapoff - запускает/останавливает подкачку данных в файл/устройство&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ОБЗОР&lt;/H2&gt;&lt;p&gt;&lt;br&gt; #include &lt;unistd.h&amp;gt;&lt;br&gt; #include &lt;sys/swap.h&amp;gt;&lt;br&gt;&lt;br&gt; int swapon(const char *path, int swapflags);&lt;br&gt; int swapoff(const char *path);&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ОПИСАНИЕ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; swapon() включает использование файла или блочного устройства, указанного в path, в качестве&lt;br&gt; подкачки данных. swapoff() выключает использование файла или блочного устройства, указанного&lt;br&gt; в path, в качестве подкачки данных.&lt;br&gt;&lt;br&gt; Если при вызове swapon() в аргументе swapflags установлен флаг SWAP_FLAG_pFER, то новое&lt;br&gt; пространство подкачки будет иметь больший приоритет, чем используемый по умолчанию.&lt;br&gt; Приоритет задаётся в swapflags следующим образом:&lt;br&gt;&lt;br&gt; (prio &lt;&lt; SWAP_FLAG_PRIO_SHIFT) &amp;amp; SWAP_FLAG_PRIO_MASK&lt;br&gt;&lt;br&gt; Если в аргументе swapflags вызова swapon() указан флаг SWAP...</description>
			<content:encoded>&lt;p&gt;&lt;br&gt;&lt;!-- Manpage converted by man2html 3.0.1 --&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ИМЯ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; swapon, swapoff - запускает/останавливает подкачку данных в файл/устройство&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ОБЗОР&lt;/H2&gt;&lt;p&gt;&lt;br&gt; #include &lt;unistd.h&amp;gt;&lt;br&gt; #include &lt;sys/swap.h&amp;gt;&lt;br&gt;&lt;br&gt; int swapon(const char *path, int swapflags);&lt;br&gt; int swapoff(const char *path);&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ОПИСАНИЕ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; swapon() включает использование файла или блочного устройства, указанного в path, в качестве&lt;br&gt; подкачки данных. swapoff() выключает использование файла или блочного устройства, указанного&lt;br&gt; в path, в качестве подкачки данных.&lt;br&gt;&lt;br&gt; Если при вызове swapon() в аргументе swapflags установлен флаг SWAP_FLAG_pFER, то новое&lt;br&gt; пространство подкачки будет иметь больший приоритет, чем используемый по умолчанию.&lt;br&gt; Приоритет задаётся в swapflags следующим образом:&lt;br&gt;&lt;br&gt; (prio &lt;&lt; SWAP_FLAG_PRIO_SHIFT) &amp;amp; SWAP_FLAG_PRIO_MASK&lt;br&gt;&lt;br&gt; Если в аргументе swapflags вызова swapon() указан флаг SWAP_FLAG_DISCARD, то освобождаемые&lt;br&gt; страницы подкачки будут исключены (discard) до того как они задействуются повторно (если&lt;br&gt; устройство подкачки поддерживает операцию исключения или обрезки). Это может улучшить&lt;br&gt; производительность на некоторых твердотельных накопителях, но, чаще всего, нет. Также&lt;br&gt; смотрите ЗАМЕЧАНИЯ.&lt;br&gt;&lt;br&gt; Эти функции могут использоваться только привилегированным процессом (имеющим мандат&lt;br&gt; CAP_SYS_ADMIN).&lt;br&gt;&lt;br&gt; Приоритет&lt;br&gt; Каждое пространство подкачки имеет приоритет, высокий или низкий. По умолчанию задается&lt;br&gt; низкий приоритет. Внутри пространств с низким приоритетом, новые пространства имеют ещё&lt;br&gt; меньший приоритет, чем старые.&lt;br&gt;&lt;br&gt; Все приоритеты, установленные с помощью swapflags, выше используемого по умолчанию.&lt;br&gt; Приоритет может быть любым неотрицательным числом (определяется вызывающим). Большее&lt;br&gt; значение соответствует большему приоритету.&lt;br&gt;&lt;br&gt; Страницы подкачки располагаются в пространствах согласно убыванию их приоритета. Если&lt;br&gt; приоритеты различаются, то сначала полностью заполняются пространства с большим приоритетом.&lt;br&gt; Если два пространства имеют одинаковый приоритет, и это наибольший приоритет из свободных,&lt;br&gt; страницы распределяются между ними по &quot;карусельному&quot; принципу.&lt;br&gt;&lt;br&gt; В Linux 1.3.6 работа ядра обычно следует этим правилам, но существуют исключения.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; При успешном выполнении возвращается 0. В случае ошибки возвращается -1, а errno&lt;br&gt; устанавливается в соответствующее значение.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ОШИБКИ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; EBUSY (для swapon()) Указанный path уже используется в качестве пространства подкачки.&lt;br&gt;&lt;br&gt; EINVAL Файл path существует, но не ссылается на обычный файл или блочное устройство;&lt;br&gt;&lt;br&gt; EINVAL (swapon()) Указанный путь не содержит правильной сигнатуры подкачки или располагается&lt;br&gt; в файловой системе, работающей в памяти, например, &lt;B&gt;tmpfs(5)&lt;/B&gt;.&lt;br&gt;&lt;br&gt; ENOMEM Не хватает памяти ядра для запуска процесса подкачки.&lt;br&gt;&lt;br&gt; EPERM Вызывающий не имеет мандата CAP_SYS_ADMIN. Или превышен лимит количества используемых&lt;br&gt; пространств подкачки; см. ЗАМЕЧАНИЯ далее.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;СООТВЕТСТВИЕ СТАНДАРТАМ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; Эти функции предназначены только для работы в Linux и не должны использоваться в переносимых&lt;br&gt; программах. Второй параметр swapflags впервые появился в Linux 1.3.2.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ЗАМЕЧАНИЯ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; Раздел или путь должны быть подготовлены к подкачке при помощи &lt;B&gt;mkswap(8)&lt;/B&gt;.&lt;br&gt;&lt;br&gt; Есть верхний предел на количество используемых файлов подкачки, он определяется константой&lt;br&gt; ядра MAX_SWAPFILES. До ядра версии 2.4.10 значение MAX_SWAPFILES было равно 8; начиная с&lt;br&gt; ядра 2.4.10, значение стало 32. Начиная с ядра 2.6.18, предел уменьшается на 2 (то есть&lt;br&gt; стало 30), если ядро собирается с параметром CONFIG_MIGRATION (который резервирует 2&lt;br&gt; элемента таблицы подкачки для возможности переноса страниц &lt;B&gt;mbind(2)&lt;/B&gt; и &lt;B&gt;migrate_pages(2)&lt;/B&gt;).&lt;br&gt; Начиная с ядра 2.6.32, предел ещё сокращается на 1, если ядро собирается с параметром&lt;br&gt; CONFIG_MEMORY_FAILURE.&lt;br&gt;&lt;br&gt; Исключение (discard) страниц подкачки появилось в ядре версии 2.6.29, флаг условия&lt;br&gt; SWAP_FLAG_DISCARD появился в ядре версии 2.6.36, но пока при вызове swapon() исключается вся&lt;br&gt; область подкачки, даже если этот флаг не задан.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;СМОТРИТЕ ТАКЖЕ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; &lt;B&gt;mkswap(8)&lt;/B&gt;, &lt;B&gt;swapoff(8)&lt;/B&gt;, &lt;B&gt;swapon(8)&lt;/B&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;</content:encoded>
			<link>https://linux-forever.usite.pro/blog/man_2_swapon/2017-11-24-846</link>
			<category>(2) Системные вызовы ядра (функции языка Си)</category>
			<dc:creator>Администратор</dc:creator>
			<guid>https://linux-forever.usite.pro/blog/man_2_swapon/2017-11-24-846</guid>
			<pubDate>Fri, 24 Nov 2017 02:36:48 GMT</pubDate>
		</item>
		<item>
			<title>man 2 swapoff</title>
			<description>&lt;p&gt;&lt;br&gt;&lt;!-- Manpage converted by man2html 3.0.1 --&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ИМЯ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; swapon, swapoff - запускает/останавливает подкачку данных в файл/устройство&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ОБЗОР&lt;/H2&gt;&lt;p&gt;&lt;br&gt; #include &lt;unistd.h&amp;gt;&lt;br&gt; #include &lt;sys/swap.h&amp;gt;&lt;br&gt;&lt;br&gt; int swapon(const char *path, int swapflags);&lt;br&gt; int swapoff(const char *path);&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ОПИСАНИЕ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; swapon() включает использование файла или блочного устройства, указанного в path, в качестве&lt;br&gt; подкачки данных. swapoff() выключает использование файла или блочного устройства, указанного&lt;br&gt; в path, в качестве подкачки данных.&lt;br&gt;&lt;br&gt; Если при вызове swapon() в аргументе swapflags установлен флаг SWAP_FLAG_pFER, то новое&lt;br&gt; пространство подкачки будет иметь больший приоритет, чем используемый по умолчанию.&lt;br&gt; Приоритет задаётся в swapflags следующим образом:&lt;br&gt;&lt;br&gt; (prio &lt;&lt; SWAP_FLAG_PRIO_SHIFT) &amp;amp; SWAP_FLAG_PRIO_MASK&lt;br&gt;&lt;br&gt; Если в аргументе swapflags вызова swapon() указан флаг SWAP...</description>
			<content:encoded>&lt;p&gt;&lt;br&gt;&lt;!-- Manpage converted by man2html 3.0.1 --&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ИМЯ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; swapon, swapoff - запускает/останавливает подкачку данных в файл/устройство&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ОБЗОР&lt;/H2&gt;&lt;p&gt;&lt;br&gt; #include &lt;unistd.h&amp;gt;&lt;br&gt; #include &lt;sys/swap.h&amp;gt;&lt;br&gt;&lt;br&gt; int swapon(const char *path, int swapflags);&lt;br&gt; int swapoff(const char *path);&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ОПИСАНИЕ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; swapon() включает использование файла или блочного устройства, указанного в path, в качестве&lt;br&gt; подкачки данных. swapoff() выключает использование файла или блочного устройства, указанного&lt;br&gt; в path, в качестве подкачки данных.&lt;br&gt;&lt;br&gt; Если при вызове swapon() в аргументе swapflags установлен флаг SWAP_FLAG_pFER, то новое&lt;br&gt; пространство подкачки будет иметь больший приоритет, чем используемый по умолчанию.&lt;br&gt; Приоритет задаётся в swapflags следующим образом:&lt;br&gt;&lt;br&gt; (prio &lt;&lt; SWAP_FLAG_PRIO_SHIFT) &amp;amp; SWAP_FLAG_PRIO_MASK&lt;br&gt;&lt;br&gt; Если в аргументе swapflags вызова swapon() указан флаг SWAP_FLAG_DISCARD, то освобождаемые&lt;br&gt; страницы подкачки будут исключены (discard) до того как они задействуются повторно (если&lt;br&gt; устройство подкачки поддерживает операцию исключения или обрезки). Это может улучшить&lt;br&gt; производительность на некоторых твердотельных накопителях, но, чаще всего, нет. Также&lt;br&gt; смотрите ЗАМЕЧАНИЯ.&lt;br&gt;&lt;br&gt; Эти функции могут использоваться только привилегированным процессом (имеющим мандат&lt;br&gt; CAP_SYS_ADMIN).&lt;br&gt;&lt;br&gt; Приоритет&lt;br&gt; Каждое пространство подкачки имеет приоритет, высокий или низкий. По умолчанию задается&lt;br&gt; низкий приоритет. Внутри пространств с низким приоритетом, новые пространства имеют ещё&lt;br&gt; меньший приоритет, чем старые.&lt;br&gt;&lt;br&gt; Все приоритеты, установленные с помощью swapflags, выше используемого по умолчанию.&lt;br&gt; Приоритет может быть любым неотрицательным числом (определяется вызывающим). Большее&lt;br&gt; значение соответствует большему приоритету.&lt;br&gt;&lt;br&gt; Страницы подкачки располагаются в пространствах согласно убыванию их приоритета. Если&lt;br&gt; приоритеты различаются, то сначала полностью заполняются пространства с большим приоритетом.&lt;br&gt; Если два пространства имеют одинаковый приоритет, и это наибольший приоритет из свободных,&lt;br&gt; страницы распределяются между ними по &quot;карусельному&quot; принципу.&lt;br&gt;&lt;br&gt; В Linux 1.3.6 работа ядра обычно следует этим правилам, но существуют исключения.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; При успешном выполнении возвращается 0. В случае ошибки возвращается -1, а errno&lt;br&gt; устанавливается в соответствующее значение.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ОШИБКИ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; EBUSY (для swapon()) Указанный path уже используется в качестве пространства подкачки.&lt;br&gt;&lt;br&gt; EINVAL Файл path существует, но не ссылается на обычный файл или блочное устройство;&lt;br&gt;&lt;br&gt; EINVAL (swapon()) Указанный путь не содержит правильной сигнатуры подкачки или располагается&lt;br&gt; в файловой системе, работающей в памяти, например, &lt;B&gt;tmpfs(5)&lt;/B&gt;.&lt;br&gt;&lt;br&gt; ENOMEM Не хватает памяти ядра для запуска процесса подкачки.&lt;br&gt;&lt;br&gt; EPERM Вызывающий не имеет мандата CAP_SYS_ADMIN. Или превышен лимит количества используемых&lt;br&gt; пространств подкачки; см. ЗАМЕЧАНИЯ далее.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;СООТВЕТСТВИЕ СТАНДАРТАМ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; Эти функции предназначены только для работы в Linux и не должны использоваться в переносимых&lt;br&gt; программах. Второй параметр swapflags впервые появился в Linux 1.3.2.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ЗАМЕЧАНИЯ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; Раздел или путь должны быть подготовлены к подкачке при помощи &lt;B&gt;mkswap(8)&lt;/B&gt;.&lt;br&gt;&lt;br&gt; Есть верхний предел на количество используемых файлов подкачки, он определяется константой&lt;br&gt; ядра MAX_SWAPFILES. До ядра версии 2.4.10 значение MAX_SWAPFILES было равно 8; начиная с&lt;br&gt; ядра 2.4.10, значение стало 32. Начиная с ядра 2.6.18, предел уменьшается на 2 (то есть&lt;br&gt; стало 30), если ядро собирается с параметром CONFIG_MIGRATION (который резервирует 2&lt;br&gt; элемента таблицы подкачки для возможности переноса страниц &lt;B&gt;mbind(2)&lt;/B&gt; и &lt;B&gt;migrate_pages(2)&lt;/B&gt;).&lt;br&gt; Начиная с ядра 2.6.32, предел ещё сокращается на 1, если ядро собирается с параметром&lt;br&gt; CONFIG_MEMORY_FAILURE.&lt;br&gt;&lt;br&gt; Исключение (discard) страниц подкачки появилось в ядре версии 2.6.29, флаг условия&lt;br&gt; SWAP_FLAG_DISCARD появился в ядре версии 2.6.36, но пока при вызове swapon() исключается вся&lt;br&gt; область подкачки, даже если этот флаг не задан.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;СМОТРИТЕ ТАКЖЕ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; &lt;B&gt;mkswap(8)&lt;/B&gt;, &lt;B&gt;swapoff(8)&lt;/B&gt;, &lt;B&gt;swapon(8)&lt;/B&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;</content:encoded>
			<link>https://linux-forever.usite.pro/blog/man_2_swapoff/2017-11-24-845</link>
			<category>(2) Системные вызовы ядра (функции языка Си)</category>
			<dc:creator>Администратор</dc:creator>
			<guid>https://linux-forever.usite.pro/blog/man_2_swapoff/2017-11-24-845</guid>
			<pubDate>Fri, 24 Nov 2017 02:36:27 GMT</pubDate>
		</item>
		<item>
			<title>man 2 subpage_prot</title>
			<description>&lt;p&gt;&lt;br&gt;&lt;!-- Manpage converted by man2html 3.0.1 --&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ИМЯ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; subpage_prot - определяет подстраничную защиту адресного диапазона&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ОБЗОР&lt;/H2&gt;&lt;p&gt;&lt;br&gt; long subpage_prot(unsigned long addr, unsigned long len,&lt;br&gt; uint32_t *map);&lt;br&gt;&lt;br&gt; Замечание: В glibc нет обёрточной функции для данного системного вызова; смотрите ЗАМЕЧАНИЯ.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ОПИСАНИЕ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; Системный вызов (есть только для PowerPC) subpage_prot() предоставляет возможность контроля&lt;br&gt; доступа к отдельным 4 КБ подстраницам в системах, где размер страницы равен 64 КБ.&lt;br&gt;&lt;br&gt; Карта защиты налагается на страницы памяти для области, начинающейся с addr и имеющей размер&lt;br&gt; len байт. Значения обоих аргументов должны быть выровнены на 64-КБ границу.&lt;br&gt;&lt;br&gt; Карта защиты задаётся в буфере, на который указывает map. В карте на каждую 4-килобайтную&lt;br&gt; подстраницу выделяется 2 бита; таким образом, в каждом 32-битном слове задаётся защита для&lt;br&gt; 16 4-килобайтных подстрани...</description>
			<content:encoded>&lt;p&gt;&lt;br&gt;&lt;!-- Manpage converted by man2html 3.0.1 --&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ИМЯ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; subpage_prot - определяет подстраничную защиту адресного диапазона&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ОБЗОР&lt;/H2&gt;&lt;p&gt;&lt;br&gt; long subpage_prot(unsigned long addr, unsigned long len,&lt;br&gt; uint32_t *map);&lt;br&gt;&lt;br&gt; Замечание: В glibc нет обёрточной функции для данного системного вызова; смотрите ЗАМЕЧАНИЯ.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ОПИСАНИЕ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; Системный вызов (есть только для PowerPC) subpage_prot() предоставляет возможность контроля&lt;br&gt; доступа к отдельным 4 КБ подстраницам в системах, где размер страницы равен 64 КБ.&lt;br&gt;&lt;br&gt; Карта защиты налагается на страницы памяти для области, начинающейся с addr и имеющей размер&lt;br&gt; len байт. Значения обоих аргументов должны быть выровнены на 64-КБ границу.&lt;br&gt;&lt;br&gt; Карта защиты задаётся в буфере, на который указывает map. В карте на каждую 4-килобайтную&lt;br&gt; подстраницу выделяется 2 бита; таким образом, в каждом 32-битном слове задаётся защита для&lt;br&gt; 16 4-килобайтных подстраниц внутри 64-килобайтной страницы (поэтому количество 32-битных&lt;br&gt; слов, на которые указывает map, должно быть равно количеству 64-килобайтных страниц,&lt;br&gt; указанному в len). Каждое 2-битное поле в карте защиты может быть: 0 — полный доступ, 1 —&lt;br&gt; защита от записи, 2 или 3 — запрет на любой доступ.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; При успешном выполнении subpage_prot() возвращается 0. В противном случае возвращается один&lt;br&gt; из кодов ошибок, описанных далее.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ОШИБКИ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; EFAULT Буфер, на который ссылается map, недоступен.&lt;br&gt;&lt;br&gt; EINVAL Некорректное значение аргумента addr или len. Оба значения должны быть кратны размеру&lt;br&gt; системной страницы, и они не должны указывать на область вне адресного пространства&lt;br&gt; процесса, или на область, которая состоит из огромных страниц.&lt;br&gt;&lt;br&gt; ENOMEM Не хватает памяти.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ВЕРСИИ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; Данный системный вызов предоставляется для архитектуры PowerPC начиная с Linux 2.6.25. Для&lt;br&gt; его сборки в ядре должен быть указан параметр CONFIG_PPC_64K_PAGES. В библиотеке поддержка&lt;br&gt; данного вызова отсутствует.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;СООТВЕТСТВИЕ СТАНДАРТАМ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; Данный вызов есть только в Linux.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ЗАМЕЧАНИЯ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; В glibc нет обёртки для данного системного вызова; запускайте его с помощью &lt;B&gt;syscall(2)&lt;/B&gt;.&lt;br&gt;&lt;br&gt; Обычная страничная защита также работает (на уровне 64-килобайтных страниц); механизм&lt;br&gt; подстраничной защиты является дополнительным ограничением, поэтому указание 0 в 2-битном&lt;br&gt; поле не разрешит запись в страницу, которая защищена от записи другим способом.&lt;br&gt;&lt;br&gt; Обоснование&lt;br&gt; Данный системный вызов предоставляется для облегчения написания эмуляторов, которые работают&lt;br&gt; с 64-КБ страницами в системах PowerPC. При эмуляции систем, в которых используется меньший&lt;br&gt; размер страницы (таких как x86), эмулятор не может использовать блок управления памятью&lt;br&gt; (MMU) и обычные системные вызовы управления защитой страниц (эмулятор может эмулировать MMU&lt;br&gt; с помощью ПО проверяя и, возможно, перераспределяя адрес при каждом обращении к памяти, но&lt;br&gt;&lt;br&gt; Файл Documentation/vm/hugetlbpage.txt в дереве исходного кода ядра Linux&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;</content:encoded>
			<link>https://linux-forever.usite.pro/blog/man_2_subpage_prot/2017-11-24-844</link>
			<category>(2) Системные вызовы ядра (функции языка Си)</category>
			<dc:creator>Администратор</dc:creator>
			<guid>https://linux-forever.usite.pro/blog/man_2_subpage_prot/2017-11-24-844</guid>
			<pubDate>Fri, 24 Nov 2017 02:36:03 GMT</pubDate>
		</item>
		<item>
			<title>man 2 stty</title>
			<description>&lt;p&gt;&lt;br&gt;&lt;!-- Manpage converted by man2html 3.0.1 --&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ИМЯ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; afs_syscall, break, fattach, fdetach, ftime, getmsg, getpmsg, gtty, isastream, lock,&lt;br&gt; madvise1, mpx, prof, profil, putmsg, putpmsg, security, stty, tuxcall, ulimit, vserver -&lt;br&gt; нереализованные системные вызовы&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ОБЗОР&lt;/H2&gt;&lt;p&gt;&lt;br&gt; Нереализованные системные вызовы.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ОПИСАНИЕ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; Данные системные вызовы не реализованы в ядре Linux.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; Эти системные вызовы всегда возвращают -1 и устанавливают для errno значение ENOSYS.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ЗАМЕЧАНИЯ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; Заметим, что &lt;B&gt;ftime(3)&lt;/B&gt;, &lt;B&gt;profil(3)&lt;/B&gt; и &lt;B&gt;ulimit(3)&lt;/B&gt; реализованы в виде библиотечных функций.&lt;br&gt;&lt;br&gt; Некоторые системные вызовы, такие как &lt;B&gt;alloc_hugepages(2)&lt;/B&gt;, &lt;B&gt;free_hugepages(2)&lt;/B&gt;, &lt;B&gt;ioperm(2)&lt;/B&gt;,&lt;br&gt; &lt;B&gt;iopl(2)&lt;/B&gt; и &lt;B&gt;vm86(2)&lt;/B&gt;, существуют только для некоторых архитектур.&lt;br&gt;&lt;br&gt; Некоторые системные вызовы...</description>
			<content:encoded>&lt;p&gt;&lt;br&gt;&lt;!-- Manpage converted by man2html 3.0.1 --&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ИМЯ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; afs_syscall, break, fattach, fdetach, ftime, getmsg, getpmsg, gtty, isastream, lock,&lt;br&gt; madvise1, mpx, prof, profil, putmsg, putpmsg, security, stty, tuxcall, ulimit, vserver -&lt;br&gt; нереализованные системные вызовы&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ОБЗОР&lt;/H2&gt;&lt;p&gt;&lt;br&gt; Нереализованные системные вызовы.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ОПИСАНИЕ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; Данные системные вызовы не реализованы в ядре Linux.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; Эти системные вызовы всегда возвращают -1 и устанавливают для errno значение ENOSYS.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ЗАМЕЧАНИЯ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; Заметим, что &lt;B&gt;ftime(3)&lt;/B&gt;, &lt;B&gt;profil(3)&lt;/B&gt; и &lt;B&gt;ulimit(3)&lt;/B&gt; реализованы в виде библиотечных функций.&lt;br&gt;&lt;br&gt; Некоторые системные вызовы, такие как &lt;B&gt;alloc_hugepages(2)&lt;/B&gt;, &lt;B&gt;free_hugepages(2)&lt;/B&gt;, &lt;B&gt;ioperm(2)&lt;/B&gt;,&lt;br&gt; &lt;B&gt;iopl(2)&lt;/B&gt; и &lt;B&gt;vm86(2)&lt;/B&gt;, существуют только для некоторых архитектур.&lt;br&gt;&lt;br&gt; Некоторые системные вызовы, такие как &lt;B&gt;ipc(2)&lt;/B&gt;, &lt;B&gt;create_module(2)&lt;/B&gt;, &lt;B&gt;init_module(2)&lt;/B&gt; и&lt;br&gt; &lt;B&gt;delete_module(2)&lt;/B&gt;, существуют в ядре Linux только, если при сборке ядра включена их&lt;br&gt; поддержка.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;СМОТРИТЕ ТАКЖЕ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; &lt;B&gt;syscalls(2)&lt;/B&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;</content:encoded>
			<link>https://linux-forever.usite.pro/blog/man_2_stty/2017-11-24-843</link>
			<category>(2) Системные вызовы ядра (функции языка Си)</category>
			<dc:creator>Администратор</dc:creator>
			<guid>https://linux-forever.usite.pro/blog/man_2_stty/2017-11-24-843</guid>
			<pubDate>Fri, 24 Nov 2017 02:35:42 GMT</pubDate>
		</item>
		<item>
			<title>man 2 stime</title>
			<description>&lt;p&gt;&lt;br&gt;&lt;!-- Manpage converted by man2html 3.0.1 --&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ИМЯ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; stime - устанавливает системное время&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ОБЗОР&lt;/H2&gt;&lt;p&gt;&lt;br&gt; #include &lt;time.h&amp;gt;&lt;br&gt;&lt;br&gt; int stime(const time_t *t);&lt;br&gt;&lt;br&gt; Требования макроса тестирования свойств для glibc (см. &lt;B&gt;feature_test_macros(7)&lt;/B&gt;):&lt;br&gt;&lt;br&gt; stime():&lt;br&gt; начиная с glibc 2.19:&lt;br&gt; _DEFAULT_SOURCE&lt;br&gt; glibc 2.19 и старее:&lt;br&gt; _SVID_SOURCE&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ОПИСАНИЕ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; Вызов stime() устанавливает системное (не аппаратное) время и дату машины. Время, заданное в&lt;br&gt; t, измеряется в секундах с начала Эпохи, с 00:00:00 1 января 1970 года (UTC). Функцию&lt;br&gt; stime() может вызывать только суперпользователь.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; При успешном выполнении возвращается 0. В случае ошибки возвращается -1, а errno&lt;br&gt; устанавливается в соответствующее значение.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ОШИБКИ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; EFAULT Ошибка при получении информации из пространства пользовател...</description>
			<content:encoded>&lt;p&gt;&lt;br&gt;&lt;!-- Manpage converted by man2html 3.0.1 --&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ИМЯ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; stime - устанавливает системное время&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ОБЗОР&lt;/H2&gt;&lt;p&gt;&lt;br&gt; #include &lt;time.h&amp;gt;&lt;br&gt;&lt;br&gt; int stime(const time_t *t);&lt;br&gt;&lt;br&gt; Требования макроса тестирования свойств для glibc (см. &lt;B&gt;feature_test_macros(7)&lt;/B&gt;):&lt;br&gt;&lt;br&gt; stime():&lt;br&gt; начиная с glibc 2.19:&lt;br&gt; _DEFAULT_SOURCE&lt;br&gt; glibc 2.19 и старее:&lt;br&gt; _SVID_SOURCE&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ОПИСАНИЕ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; Вызов stime() устанавливает системное (не аппаратное) время и дату машины. Время, заданное в&lt;br&gt; t, измеряется в секундах с начала Эпохи, с 00:00:00 1 января 1970 года (UTC). Функцию&lt;br&gt; stime() может вызывать только суперпользователь.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; При успешном выполнении возвращается 0. В случае ошибки возвращается -1, а errno&lt;br&gt; устанавливается в соответствующее значение.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ОШИБКИ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; EFAULT Ошибка при получении информации из пространства пользователя.&lt;br&gt;&lt;br&gt; EPERM Вызвавшему процессу не хватает прав. В Linux для этого требуется мандат CAP_SYS_TIME.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;СООТВЕТСТВИЕ СТАНДАРТАМ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; SVr4.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;СМОТРИТЕ ТАКЖЕ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; &lt;B&gt;date(1)&lt;/B&gt;, &lt;B&gt;settimeofday(2)&lt;/B&gt;, &lt;B&gt;capabilities(7)&lt;/B&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;</content:encoded>
			<link>https://linux-forever.usite.pro/blog/man_2_stime/2017-11-24-842</link>
			<category>(2) Системные вызовы ядра (функции языка Си)</category>
			<dc:creator>Администратор</dc:creator>
			<guid>https://linux-forever.usite.pro/blog/man_2_stime/2017-11-24-842</guid>
			<pubDate>Fri, 24 Nov 2017 02:35:18 GMT</pubDate>
		</item>
		<item>
			<title>man 2 statx</title>
			<description>&lt;p&gt;&lt;br&gt;&lt;!-- Manpage converted by man2html 3.0.1 --&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ИМЯ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; statx - считывает состояние файла (расширенный вариант)&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ОБЗОР&lt;/H2&gt;&lt;p&gt;&lt;br&gt; #include &lt;sys/types.h&amp;gt;&lt;br&gt; #include &lt;sys/stat.h&amp;gt;&lt;br&gt; #include &lt;unistd.h&amp;gt;&lt;br&gt; #include &lt;fcntl.h&amp;gt; /* константы AT_* */&lt;br&gt;&lt;br&gt; int statx(int dirfd, const char *pathname, int flags,&lt;br&gt; unsigned int mask, struct statx *statxbuf);&lt;br&gt;&lt;br&gt; Замечание: В glibc нет обёрточной функции для statx(); смотрите ЗАМЕЧАНИЯ.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ОПИСАНИЕ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; Этот системный вызов возвращает информацию о файле, записывая её в буфер, на который&lt;br&gt; указывает statxbuf. Возвращаемый буфер представляет собой структуру следующего вида:&lt;br&gt;&lt;br&gt; struct statx {&lt;br&gt; __u32 stx_mask; /* маска битов, показывающая&lt;br&gt; заполненные поля */&lt;br&gt; __u32 stx_blksize; /* размер блока ввода-вывода файловой системы */&lt;br&gt; __u64 stx_attributes; /* индикаторы дополнительных файловых атрибутов */&lt;br&gt; __u32 stx_nlink...</description>
			<content:encoded>&lt;p&gt;&lt;br&gt;&lt;!-- Manpage converted by man2html 3.0.1 --&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ИМЯ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; statx - считывает состояние файла (расширенный вариант)&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ОБЗОР&lt;/H2&gt;&lt;p&gt;&lt;br&gt; #include &lt;sys/types.h&amp;gt;&lt;br&gt; #include &lt;sys/stat.h&amp;gt;&lt;br&gt; #include &lt;unistd.h&amp;gt;&lt;br&gt; #include &lt;fcntl.h&amp;gt; /* константы AT_* */&lt;br&gt;&lt;br&gt; int statx(int dirfd, const char *pathname, int flags,&lt;br&gt; unsigned int mask, struct statx *statxbuf);&lt;br&gt;&lt;br&gt; Замечание: В glibc нет обёрточной функции для statx(); смотрите ЗАМЕЧАНИЯ.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ОПИСАНИЕ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; Этот системный вызов возвращает информацию о файле, записывая её в буфер, на который&lt;br&gt; указывает statxbuf. Возвращаемый буфер представляет собой структуру следующего вида:&lt;br&gt;&lt;br&gt; struct statx {&lt;br&gt; __u32 stx_mask; /* маска битов, показывающая&lt;br&gt; заполненные поля */&lt;br&gt; __u32 stx_blksize; /* размер блока ввода-вывода файловой системы */&lt;br&gt; __u64 stx_attributes; /* индикаторы дополнительных файловых атрибутов */&lt;br&gt; __u32 stx_nlink; /* количество жёстких ссылок */&lt;br&gt; __u32 stx_uid; /* идентификатор пользователя-владельца */&lt;br&gt; __u32 stx_gid; /* идентификатор группы-владельца */&lt;br&gt; __u16 stx_mode; /* тип файла и режим доступа */&lt;br&gt; __u64 stx_ino; /* номер иноды */&lt;br&gt; __u64 stx_size; /* полный размер в байтах */&lt;br&gt; __u64 stx_blocks; /* количество выделенных 512-байтовых блоков */&lt;br&gt; __u64 stx_attributes_mask;&lt;br&gt; /* маска, показывающая поддерживаемые атрибуты&lt;br&gt; в stx_attributes */&lt;br&gt;&lt;br&gt; /* поля меток времени */&lt;br&gt; struct statx_timestamp stx_atime; /* последний доступ */&lt;br&gt; struct statx_timestamp stx_btime; /* создание */&lt;br&gt; struct statx_timestamp stx_ctime; /* последнее изменение состояния */&lt;br&gt; struct statx_timestamp stx_mtime; /* последнее изменение */&lt;br&gt;&lt;br&gt; /* если файл представляет устройство, то в следующих&lt;br&gt; полях содержится идентификатор устройства */&lt;br&gt; __u32 stx_rdev_major; /* основной идентификатор */&lt;br&gt; __u32 stx_rdev_minor; /* дополнительный идентификатор */&lt;br&gt;&lt;br&gt; /* поля идентификатора устройства с файловой системой,&lt;br&gt; в которой содержится файл */&lt;br&gt; __u32 stx_dev_major; /* основной идентификатор */&lt;br&gt; __u32 stx_dev_minor; /* дополнительный идентификатор */&lt;br&gt; };&lt;br&gt;&lt;br&gt; Метки времени файла хранятся в структуре следующего вида:&lt;br&gt;&lt;br&gt; struct statx_timestamp {&lt;br&gt; __s64 tv_sec; /* количество секунд с начала Эпохи (время UNIX) */&lt;br&gt; __u32 tv_nsec; /* количество наносекунд, начиная с tv_sec */&lt;br&gt; };&lt;br&gt;&lt;br&gt; путями:&lt;br&gt;&lt;br&gt; Абсолютный путь&lt;br&gt; Если pathname начинается с косой черты, то целевой файла задан абсолютным путём. В&lt;br&gt; этом случае значение dirfd игнорируется.&lt;br&gt;&lt;br&gt; Относительный путь&lt;br&gt; Если pathname начинается не с косой черты и dirfd равно AT_FDCWD, то pathname&lt;br&gt; рассматривается относительно текущего рабочего каталога процесса.&lt;br&gt;&lt;br&gt; Путь, задаваемый относительно каталога&lt;br&gt; Если pathname начинается не с косой черты и dirfd содержит файловый дескриптор,&lt;br&gt; указывающий на каталог, то pathname рассматривается относительно каталога, на который&lt;br&gt; ссылается dirfd.&lt;br&gt;&lt;br&gt; По файловому дескриптору&lt;br&gt; Если значение pathname равно пустой строке и в flags (смотрите ниже) указан флаг&lt;br&gt; AT_EMPTY_PATH, то целевым файлом считается тот, на который указывает файловый&lt;br&gt; дескриптор в dirfd.&lt;br&gt;&lt;br&gt; Значение flags можно использовать для уточнения поиска на основе пути. Оно составляется из&lt;br&gt; побитно слагаемых следующих констант:&lt;br&gt;&lt;br&gt; AT_EMPTY_PATH&lt;br&gt; Если значение pathname равно пустой строке, то вызов выполняет действие с файлом, на&lt;br&gt; который ссылается dirfd (может быть получен с помощью &lt;B&gt;open(2)&lt;/B&gt; с флагом O_PATH). В&lt;br&gt; этом случае dirfd может ссылаться на файл любого типа, а не только на каталог.&lt;br&gt;&lt;br&gt; Если dirfd равно AT_FDCWD, то вызов использует текущий рабочий каталог.&lt;br&gt;&lt;br&gt; Данный флаг существует только в Linux; для его получения определите _GNU_SOURCE.&lt;br&gt;&lt;br&gt; AT_NO_AUTOMOUNT&lt;br&gt; Не выполнять автоматическое монтирование конечного компонента («basename») pathname,&lt;br&gt; если это каталог, который является точкой монтирования. Это позволяет вызывающему&lt;br&gt; получить атрибуты точки монтирования (а не расположения, где её предполагалось&lt;br&gt; смонтировать). Этот флаг можно использовать в инструментах, сканирующих каталоги, для&lt;br&gt; предотвращения массового автоматического монтирования каталогов в их точки&lt;br&gt; монтирования. Флаг AT_NO_AUTOMOUNT не учитывается, если к точке уже уже была&lt;br&gt; выполнено монтирование. Этот флаг есть только Linux; для его получения нужно задать&lt;br&gt; _GNU_SOURCE.&lt;br&gt;&lt;br&gt; AT_SYMLINK_NOFOLLOW&lt;br&gt; Если значение pathname является символьной ссылкой, не разыменовывать её, а выдать&lt;br&gt; информацию о самой ссылке, подобно &lt;B&gt;lstat(2)&lt;/B&gt;.&lt;br&gt;&lt;br&gt; Значение flags также может использоваться для контроля типа синхронизации, которое выполняет&lt;br&gt; ядро при опросе файла на удалённой файловой системе. Оно составляется из побитно слагаемых&lt;br&gt; следующих значений:&lt;br&gt;&lt;br&gt; AT_STATX_SYNC_AS_STAT&lt;br&gt; Работать подобно &lt;B&gt;stat(2)&lt;/B&gt;. Используется по умолчанию и очень зависит от файловой&lt;br&gt; системы.&lt;br&gt;&lt;br&gt; AT_STATX_FORCE_SYNC&lt;br&gt; Принудительно синхронизировать атрибуты с сервером. Может потребовать от сетевой&lt;br&gt; файловой системы выполнить запись данных для получения правильных меток времени.&lt;br&gt;&lt;br&gt; STATX_TYPE Требуется stx_mode &amp;amp; S_IFMT&lt;br&gt; STATX_MODE Требуется stx_mode &amp;amp; ~S_IFMT&lt;br&gt; STATX_NLINK Требуется stx_nlink&lt;br&gt; STATX_UID Требуется stx_uid&lt;br&gt; STATX_GID Требуется stx_gid&lt;br&gt; STATX_ATIME Требуется stx_atime&lt;br&gt; STATX_MTIME Требуется stx_mtime&lt;br&gt; STATX_CTIME Требуется stx_ctime&lt;br&gt; STATX_INO Требуется stx_ino&lt;br&gt; STATX_SIZE Требуется stx_size&lt;br&gt; STATX_BLOCKS Требуется stx_blocks&lt;br&gt; STATX_BASIC_STATS [всё вышеперечисленное]&lt;br&gt; STATX_BTIME Требуется stx_btime&lt;br&gt; STATX_ALL [все доступные в данный момент поля]&lt;br&gt;&lt;br&gt; Заметим, что ядро не не отклоняет значения в mask, отличные от вышеперечисленных. Вместо&lt;br&gt; этого оно просто информирует вызывающего, какие значения поддерживаются ядром и файловой&lt;br&gt; системой через поле statx.stx_mask. Поэтому не устанавливайте значение mask в UINT_MAX (все&lt;br&gt; биты), так как один или более бит в будущем могут использоваться для указания расширения&lt;br&gt; буфера.&lt;br&gt;&lt;br&gt; Возвращаемая информация&lt;br&gt; Информация о состоянии целевого файла возвращается в структуре statx, на которую указывает&lt;br&gt; statxbuf. Она содержит stx_mask, в котором описывается возвращённая информация. Значение&lt;br&gt; stx_mask имеет тот же формат, что и аргумент mask, и установленные в нём бит показывают&lt;br&gt; какие поля были заполнены.&lt;br&gt;&lt;br&gt; Стоит упомянуть, что ядро может вернуть поля, которые не был запрошены и запрошенные поля&lt;br&gt; могут быть не заполнены, в зависимости от поддержки в нижележащей файловой системе (поля,&lt;br&gt; которым были присвоены значение, но которые не были запрошены, можно игнорировать). В этих&lt;br&gt; случаях stx_mask будет не равно mask.&lt;br&gt;&lt;br&gt; Если файловая система не поддерживает поле или если значение поле содержит непрезентабельное&lt;br&gt; значение (например, файл экзотического типа), то битовая маска в stx_mask, соответствующая&lt;br&gt; этому полю, будет очищена даже если пользователь запросил его, и в целях совместимости в&lt;br&gt; качестве значения, если возможно, будет помещена пустышка (например, в некоторых случаях&lt;br&gt; пустышки UID и GID могут задаваться при монтировании).&lt;br&gt;&lt;br&gt; Файловая система также может заполнить поля, которые вызывающий не запрашивал, при условии,&lt;br&gt; что их значения доступны и это ничего стоит. Если это выполняется, то будут установлены&lt;br&gt; соответствующие биты в stx_mask.&lt;br&gt;&lt;br&gt; Замечание: с целью производительности и простоты различные поля в структуре statx могут&lt;br&gt; содержать информацию о состоянии из различных моментов выполнения системного вызова.&lt;br&gt; Например, если изменяется stx_mode или stx_uid другим процессом посредством вызова &lt;B&gt;chmod(2)&lt;/B&gt;&lt;br&gt; или &lt;B&gt;chown(2)&lt;/B&gt;, то stat() может вернуть старое значение stx_mode вместе с новым stx_uid, или&lt;br&gt; старое stx_uid вместе с новым stx_mode.&lt;br&gt;&lt;br&gt; Помимо полей stx_mask (описанной выше) структура statx имеет следующие поля:&lt;br&gt;&lt;br&gt; stx_blksize&lt;br&gt; «Предпочтительный» размер блока для эффективного ввода/вывода в файловой системе&lt;br&gt; (запись в файл более мелкими порциями может привести к неэффективному&lt;br&gt; чтению/изменению/повторной записи).&lt;br&gt;&lt;br&gt; stx_attributes&lt;br&gt; Дополнительная информация о состоянии файла (подробности ниже).&lt;br&gt;&lt;br&gt; stx_mode&lt;br&gt; Тип файла и режим. Дополнительную информацию смотрите в &lt;B&gt;inode(7)&lt;/B&gt;.&lt;br&gt;&lt;br&gt; stx_ino&lt;br&gt; Номер иноды файла.&lt;br&gt;&lt;br&gt; stx_size&lt;br&gt; Размер файла (если он обычный или является символьной ссылкой) в байтах. Размер&lt;br&gt; символьной ссылки равен длине пути файла, на который она ссылается, без конечного&lt;br&gt; нулевого байта.&lt;br&gt;&lt;br&gt; stx_blocks&lt;br&gt; Количество блоков (по 512 байт), выделенных для файла на носителе (может быть меньше,&lt;br&gt; чем stx_size/512, когда в файле есть пропуски (holes)).&lt;br&gt;&lt;br&gt; stx_attributes_mask&lt;br&gt; Маска, показывающая какие биты в stx_attributes поддерживаются VFS и файловой&lt;br&gt; системой.&lt;br&gt;&lt;br&gt; stx_atime&lt;br&gt; Метка времени последнего доступа к файлу.&lt;br&gt;&lt;br&gt; stx_btime&lt;br&gt; Метка времени создания файла.&lt;br&gt;&lt;br&gt; stx_ctime&lt;br&gt; Метка времени последнего изменения состояния файла.&lt;br&gt;&lt;br&gt; stx_mtime&lt;br&gt; Метка времени последнего изменения файла.&lt;br&gt;&lt;br&gt; stx_dev_major и stx_dev_minor&lt;br&gt; Устройство, на котором находится файл (инода).&lt;br&gt;&lt;br&gt; stx_rdev_major и stx_rdev_minor&lt;br&gt; Устройство, который этот файл (инода) представляет, если файл имеет блочный или&lt;br&gt; символьный тип устройства.&lt;br&gt;&lt;br&gt; Дополнительную информацию об этих полях смотрите в &lt;B&gt;inode(7)&lt;/B&gt;.&lt;br&gt;&lt;br&gt; Атрибуты файла&lt;br&gt; В поле stx_attributes содержится набор флагов (объединённых через ИЛИ), которые отображают&lt;br&gt; дополнительные атрибуты файла. Заметим, что для атрибута, не указанного как поддерживаемого&lt;br&gt; в stx_attributes_mask, имеющееся здесь значение является не корректным. Биты&lt;br&gt; stx_attributes_mask точно бит в бит соответствуют битам поля stx_attributes.&lt;br&gt;&lt;br&gt; Флаги:&lt;br&gt;&lt;br&gt; STATX_ATTR_COMpSSED&lt;br&gt; Файл сжат файловой системой и для доступа могут потребоваться дополнительные ресурсы.&lt;br&gt;&lt;br&gt; STATX_ATTR_IMMUTABLE&lt;br&gt; Файл невозможно изменить: его нельзя переименовать или удалить, на этот файл нельзя&lt;br&gt; создать жёсткую ссылку и в него нельзя выполнить запись данных. Смотрите &lt;B&gt;chattr(1)&lt;/B&gt;.&lt;br&gt;&lt;br&gt; STATX_ATTR_APPEND&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; При успешном выполнении возвращается 0. В случае ошибки возвращается -1, а errno&lt;br&gt; устанавливается в соответствующее значение.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ОШИБКИ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; EACCES Запрещён поиск в одном из каталогов пути pathname (смотрите также&lt;br&gt; &lt;B&gt;path_resolution(7)&lt;/B&gt;).&lt;br&gt;&lt;br&gt; EBADF Значение dirfd не является правильным открытым файловым дескриптором.&lt;br&gt;&lt;br&gt; EFAULT Значение pathname или statxbuf равно NULL или указывает на расположение вне&lt;br&gt; доступного процессу адресного пространства.&lt;br&gt;&lt;br&gt; EINVAL Указано неверное значение в flags.&lt;br&gt;&lt;br&gt; EINVAL В mask указан зарезервированный флаг.&lt;br&gt;&lt;br&gt; ELOOP Во время определения пути встретилось слишком много символьных ссылок.&lt;br&gt;&lt;br&gt; ENAMETOOLONG&lt;br&gt; Слишком длинное значение аргумента pathname.&lt;br&gt;&lt;br&gt; ENOENT Компонент пути pathname не существует или в pathname указана пустая строка и в flags&lt;br&gt; не указан AT_EMPTY_PATH.&lt;br&gt;&lt;br&gt; ENOMEM Не хватает памяти (например, памяти ядра).&lt;br&gt;&lt;br&gt; ENOTDIR&lt;br&gt; Компонент префикса пути pathname содержит относительный путь и dirfd содержит&lt;br&gt; файловый дескриптор, указывающий на файл, а не на каталог.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ВЕРСИИ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; Вызов statx() был добавлен в ядро Linux 4.11.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;СООТВЕТСТВИЕ СТАНДАРТАМ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; Вызов statx() есть только в Linux.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ЗАМЕЧАНИЯ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; В glibc (пока) нет обёртки для системного вызова statx(); запускайте его с помощью&lt;br&gt; &lt;B&gt;syscall(2)&lt;/B&gt;.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;СМОТРИТЕ ТАКЖЕ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; &lt;B&gt;ls(1)&lt;/B&gt;, &lt;B&gt;stat(1)&lt;/B&gt;, &lt;B&gt;access(2)&lt;/B&gt;, &lt;B&gt;chmod(2)&lt;/B&gt;, &lt;B&gt;chown(2)&lt;/B&gt;, &lt;B&gt;readlink(2)&lt;/B&gt;, &lt;B&gt;stat(2)&lt;/B&gt;, &lt;B&gt;utime(2)&lt;/B&gt;,&lt;br&gt; &lt;B&gt;capabilities(7)&lt;/B&gt;, &lt;B&gt;inode(7)&lt;/B&gt;, &lt;B&gt;symlink(7)&lt;/B&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;</content:encoded>
			<link>https://linux-forever.usite.pro/blog/man_2_statx/2017-11-24-841</link>
			<category>(2) Системные вызовы ядра (функции языка Си)</category>
			<dc:creator>Администратор</dc:creator>
			<guid>https://linux-forever.usite.pro/blog/man_2_statx/2017-11-24-841</guid>
			<pubDate>Fri, 24 Nov 2017 02:34:55 GMT</pubDate>
		</item>
		<item>
			<title>man 2 statvfs</title>
			<description>&lt;p&gt;&lt;br&gt;&lt;!-- Manpage converted by man2html 3.0.1 --&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ИМЯ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; statvfs, fstatvfs - получение статистики по файловой системе&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ОБЗОР&lt;/H2&gt;&lt;p&gt;&lt;br&gt; #include &lt;sys/statvfs.h&amp;gt;&lt;br&gt;&lt;br&gt; int statvfs(const char *path, struct statvfs *buf);&lt;br&gt; int fstatvfs(int fd, struct statvfs *buf);&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ОПИСАНИЕ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; Функция statvfs() возвращает информацию о смонтированной файловой системе. path является&lt;br&gt; путём любого файла, расположенного в смонтированной файловой системе. buf является&lt;br&gt; указателем на структуру statvfs, определённую примерно следующим образом:&lt;br&gt;&lt;br&gt; struct statvfs {&lt;br&gt; unsigned long f_bsize; /* размер блока файловой системы */&lt;br&gt; unsigned long f_frsize; /* размер фрагмента */&lt;br&gt; fsblkcnt_t f_blocks; /* размер ФС в единицах f_frsize */&lt;br&gt; fsblkcnt_t f_bfree; /* количество свободных блоков */&lt;br&gt; fsblkcnt_t f_bavail; /* количество свободных блоков&lt;br&gt; для непривилегированных пользователей */&lt;br&gt; fsfilcnt_t f...</description>
			<content:encoded>&lt;p&gt;&lt;br&gt;&lt;!-- Manpage converted by man2html 3.0.1 --&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ИМЯ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; statvfs, fstatvfs - получение статистики по файловой системе&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ОБЗОР&lt;/H2&gt;&lt;p&gt;&lt;br&gt; #include &lt;sys/statvfs.h&amp;gt;&lt;br&gt;&lt;br&gt; int statvfs(const char *path, struct statvfs *buf);&lt;br&gt; int fstatvfs(int fd, struct statvfs *buf);&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ОПИСАНИЕ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; Функция statvfs() возвращает информацию о смонтированной файловой системе. path является&lt;br&gt; путём любого файла, расположенного в смонтированной файловой системе. buf является&lt;br&gt; указателем на структуру statvfs, определённую примерно следующим образом:&lt;br&gt;&lt;br&gt; struct statvfs {&lt;br&gt; unsigned long f_bsize; /* размер блока файловой системы */&lt;br&gt; unsigned long f_frsize; /* размер фрагмента */&lt;br&gt; fsblkcnt_t f_blocks; /* размер ФС в единицах f_frsize */&lt;br&gt; fsblkcnt_t f_bfree; /* количество свободных блоков */&lt;br&gt; fsblkcnt_t f_bavail; /* количество свободных блоков&lt;br&gt; для непривилегированных пользователей */&lt;br&gt; fsfilcnt_t f_files; /* количество inodes */&lt;br&gt; fsfilcnt_t f_ffree; /* количество свободных inodes */&lt;br&gt; fsfilcnt_t f_favail; /* количество свободных inodes&lt;br&gt; для непривилегированных пользователей */&lt;br&gt; unsigned long f_fsid; /* идентификатор файловой системы */&lt;br&gt; unsigned long f_flag; /* параметры монтирования */&lt;br&gt; unsigned long f_namemax; /* максимальная длина имени файла */&lt;br&gt; };&lt;br&gt;&lt;br&gt; Типы fsblkcnt_t и fsfilcnt_t определены в файле &lt;sys/types.h&amp;gt;. Для их определения&lt;br&gt; используется тип unsigned long.&lt;br&gt;&lt;br&gt; Значение поля f_flag — битовая маска различных параметров, которые были указаны при&lt;br&gt; монтировании этой файловой системы. В нём содержится ноль или несколько следующих флагов:&lt;br&gt;&lt;br&gt; ST_MANDLOCK&lt;br&gt; Разрешена обязательная (mandatory) блокировка файловой системы (смотрите &lt;B&gt;fcntl(2)&lt;/B&gt;).&lt;br&gt;&lt;br&gt; ST_NOATIME&lt;br&gt; Не обновлять времена доступа; смотрите &lt;B&gt;mount(2)&lt;/B&gt;.&lt;br&gt;&lt;br&gt; ST_NODEV&lt;br&gt; Запретить доступ к специальным файлам устройств в этой файловой системе.&lt;br&gt;&lt;br&gt; ST_NODIRATIME&lt;br&gt; Не обновлять времена доступа к каталогам; смотрите &lt;B&gt;mount(2)&lt;/B&gt;.&lt;br&gt;&lt;br&gt; ST_NOEXEC&lt;br&gt; Исполнение программ в этой файловой системе запрещено.&lt;br&gt;&lt;br&gt; ST_NOSUID&lt;br&gt; Биты set-user-ID и set-group-ID игнорируются в &lt;B&gt;exec(3)&lt;/B&gt; для исполняемых файлов в этой&lt;br&gt; файловой системе.&lt;br&gt;&lt;br&gt; ST_RDONLY&lt;br&gt; Файловая система смонтирована в режиме только для чтения.&lt;br&gt;&lt;br&gt; осмысленные данные.&lt;br&gt;&lt;br&gt; fstatvfs() возвращает такую же информацию об открытом файле через его ссылку на дескриптор&lt;br&gt; fd.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; При успешном выполнении возвращается 0. В случае ошибки возвращается -1, а errno&lt;br&gt; устанавливается в соответствующее значение.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ОШИБКИ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; EACCES (statvfs()) Нет права на поиск одного из компонентов префикса пути path (см. также&lt;br&gt; &lt;B&gt;path_resolution(7)&lt;/B&gt;).&lt;br&gt;&lt;br&gt; EBADF (fstatvfs()) fd не является корректным открытым дескриптором файла.&lt;br&gt;&lt;br&gt; EFAULT Buf или path указывает на неправильный адрес.&lt;br&gt;&lt;br&gt; EINTR Данный вызов был прерван сигналом; смотрите &lt;B&gt;signal(7)&lt;/B&gt;.&lt;br&gt;&lt;br&gt; EIO При чтении файловой системы произошла ошибка ввода-вывода.&lt;br&gt;&lt;br&gt; ELOOP (statvfs()) Было обнаружено слишком много символьных ссылок при трансляции path.&lt;br&gt;&lt;br&gt; ENAMETOOLONG&lt;br&gt; (statvfs()) Слишком длинное значение аргумента path.&lt;br&gt;&lt;br&gt; ENOENT (statvfs()) Файл, указанный в path, не существует.&lt;br&gt;&lt;br&gt; ENOMEM Недостаточное количество памяти ядра.&lt;br&gt;&lt;br&gt; ENOSYS Файловая система не поддерживает данный вызов.&lt;br&gt;&lt;br&gt; ENOTDIR&lt;br&gt; (statvfs()) Один из компонентов префикса пути path не является каталогом.&lt;br&gt;&lt;br&gt; EOVERFLOW&lt;br&gt; Некоторые значения слишком велики, чтобы быть представленными в возвращаемой&lt;br&gt; структуре.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;АТРИБУТЫ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; Описание терминов данного раздела смотрите в &lt;B&gt;attributes(7)&lt;/B&gt;.&lt;br&gt;&lt;br&gt; ┌──────────────────────┬──────────────────────┬──────────┐&lt;br&gt; │Интерфейс │ Атрибут │ Значение │&lt;br&gt; ├──────────────────────┼──────────────────────┼──────────┤&lt;br&gt; │statvfs(), fstatvfs() │ Безвредность в нитях │ MT-Safe │&lt;br&gt; └──────────────────────┴──────────────────────┴──────────┘&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;СООТВЕТСТВИЕ СТАНДАРТАМ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; POSIX.1-2001, POSIX.1-2008.&lt;br&gt;&lt;br&gt; В POSIX.1 в поле f_flag определены только флаги ST_NOSUID и ST_RDONLY. Чтобы получить&lt;br&gt; определения остальных флагов нужно определить _GNU_SOURCE.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;ЗАМЕЧАНИЯ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; Для поддержки данной библиотечной функции в ядре Linux есть системные вызовы &lt;B&gt;statfs(2)&lt;/B&gt; и&lt;br&gt; &lt;B&gt;fstatfs(2)&lt;/B&gt;.&lt;br&gt;&lt;br&gt; pathconf(path, _PC_ALLOC_SIZE_MIN);&lt;br&gt; pathconf(path, _PC_REC_MIN_XFER_SIZE);&lt;br&gt;&lt;br&gt; используют, соответственно, поля f_frsize, f_frsize и f_bsize, возвращаемые вызовом&lt;br&gt; statvfs() с аргументом path.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;H2&gt;СМОТРИТЕ ТАКЖЕ&lt;/H2&gt;&lt;p&gt;&lt;br&gt; &lt;B&gt;statfs(2)&lt;/B&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;br&gt;</content:encoded>
			<link>https://linux-forever.usite.pro/blog/man_2_statvfs/2017-11-24-840</link>
			<category>(2) Системные вызовы ядра (функции языка Си)</category>
			<dc:creator>Администратор</dc:creator>
			<guid>https://linux-forever.usite.pro/blog/man_2_statvfs/2017-11-24-840</guid>
			<pubDate>Fri, 24 Nov 2017 02:34:34 GMT</pubDate>
		</item>
	</channel>
</rss>