Files
php-doc-ru/reference/filesystem/functions/fseek.xml
2021-01-05 20:16:26 +03:00

166 lines
5.8 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 0c9c2dd669fe9395eaa73d487fbd160f9057429a Maintainer: shein Status: ready -->
<!-- Reviewed: yes -->
<!-- $Revision$ -->
<refentry xml:id="function.fseek" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>fseek</refname>
<refpurpose>Устанавливает смещение в файловом указателе</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>int</type><methodname>fseek</methodname>
<methodparam><type>resource</type><parameter>stream</parameter></methodparam>
<methodparam><type>int</type><parameter>offset</parameter></methodparam>
<methodparam choice="opt"><type>int</type><parameter>whence</parameter><initializer><constant>SEEK_SET</constant></initializer></methodparam>
</methodsynopsis>
<para>
Устанавливает смещение в файле, на который ссылается
<parameter>stream</parameter>. Новое смещение, измеряемое в байтах от
начала файла, получается путём прибавления параметра
<parameter>offset</parameter> к позиции, указанной в параметре
<parameter>whence</parameter>.
</para>
<para>
В общей сложности разрешается указывать смещение за пределами
конца файла, если данные потом будут записаны в этой позиции,
чтение любой незаписанной области между концом файла и указанной
позицией возвратит нулевые байты. Однако, определённые потоки
могут не поддерживать это поведение, особенно если у них
есть основное хранилище фиксированного размера.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>stream</parameter></term>
<listitem>
&fs.file.pointer;
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>offset</parameter></term>
<listitem>
<para>
Смещение.
</para>
<para>
Для смещения позиции перед концом файла необходимо передать
отрицательное значение <parameter>offset</parameter> и
установить параметр <parameter>whence</parameter>
в <constant>SEEK_END</constant>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>whence</parameter></term>
<listitem>
<para>
Значениями <parameter>whence</parameter> являются:
<simplelist>
<member><constant>SEEK_SET</constant> - Установить смещение в
<parameter>offset</parameter> байт.
</member>
<member><constant>SEEK_CUR</constant> - Установить смещение в
текущее положение плюс <parameter>offset</parameter>.
</member>
<member><constant>SEEK_END</constant> - Установить смещение в
конец файла плюс <parameter>offset</parameter>.
</member>
</simplelist>
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
В случае успеха возвращает 0; в противном случае возвращает -1.
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Пример использования функции <function>fseek</function></title>
<programlisting role="php">
<![CDATA[
<?php
$fp = fopen('somefile.txt', 'r');
// читаем немного данных
$data = fgets($fp, 4096);
// перемещаемся назад к началу файла
// то же самое, что и rewind($fp);
fseek($fp, 0);
?>
]]>
</programlisting>
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<note>
<para>
Если файл открыт в режиме "записи в конец" (<literal>a</literal> или
<literal>a+</literal>), любые записываемые в файл данные будут
записываться в конец, вне зависимости от позиции файла, а результат
вызова <function>fseek</function> будет не определён.
</para>
</note>
<note>
<para>
Не все потоки поддерживают смещение указателя. Для потоков,
не поддерживающих эту операцию, смещение вперёд осуществляется
чтением и отбрасыванием данных, другие формы смещения закончатся
ошибкой.
</para>
</note>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>ftell</function></member>
<member><function>rewind</function></member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->