mirror of https://gitee.com/openkylin/linux.git
129 lines
3.8 KiB
XML
129 lines
3.8 KiB
XML
|
<refentry id="func-write">
|
||
|
<refmeta>
|
||
|
<refentrytitle>V4L2 write()</refentrytitle>
|
||
|
&manvol;
|
||
|
</refmeta>
|
||
|
|
||
|
<refnamediv>
|
||
|
<refname>v4l2-write</refname>
|
||
|
<refpurpose>Write to a V4L2 device</refpurpose>
|
||
|
</refnamediv>
|
||
|
|
||
|
<refsynopsisdiv>
|
||
|
<funcsynopsis>
|
||
|
<funcsynopsisinfo>#include <unistd.h></funcsynopsisinfo>
|
||
|
<funcprototype>
|
||
|
<funcdef>ssize_t <function>write</function></funcdef>
|
||
|
<paramdef>int <parameter>fd</parameter></paramdef>
|
||
|
<paramdef>void *<parameter>buf</parameter></paramdef>
|
||
|
<paramdef>size_t <parameter>count</parameter></paramdef>
|
||
|
</funcprototype>
|
||
|
</funcsynopsis>
|
||
|
</refsynopsisdiv>
|
||
|
|
||
|
<refsect1>
|
||
|
<title>Arguments</title>
|
||
|
|
||
|
<variablelist>
|
||
|
<varlistentry>
|
||
|
<term><parameter>fd</parameter></term>
|
||
|
<listitem>
|
||
|
<para>&fd;</para>
|
||
|
</listitem>
|
||
|
</varlistentry>
|
||
|
<varlistentry>
|
||
|
<term><parameter>buf</parameter></term>
|
||
|
<listitem>
|
||
|
<para></para>
|
||
|
</listitem>
|
||
|
</varlistentry>
|
||
|
<varlistentry>
|
||
|
<term><parameter>count</parameter></term>
|
||
|
<listitem>
|
||
|
<para></para>
|
||
|
</listitem>
|
||
|
</varlistentry>
|
||
|
</variablelist>
|
||
|
</refsect1>
|
||
|
|
||
|
<refsect1>
|
||
|
<title>Description</title>
|
||
|
|
||
|
<para><function>write()</function> writes up to
|
||
|
<parameter>count</parameter> bytes to the device referenced by the
|
||
|
file descriptor <parameter>fd</parameter> from the buffer starting at
|
||
|
<parameter>buf</parameter>. When the hardware outputs are not active
|
||
|
yet, this function enables them. When <parameter>count</parameter> is
|
||
|
zero, <function>write()</function> returns
|
||
|
<returnvalue>0</returnvalue> without any other effect.</para>
|
||
|
|
||
|
<para>When the application does not provide more data in time, the
|
||
|
previous video frame, raw VBI image, sliced VPS or WSS data is
|
||
|
displayed again. Sliced Teletext or Closed Caption data is not
|
||
|
repeated, the driver inserts a blank line instead.</para>
|
||
|
</refsect1>
|
||
|
|
||
|
<refsect1>
|
||
|
<title>Return Value</title>
|
||
|
|
||
|
<para>On success, the number of bytes written are returned. Zero
|
||
|
indicates nothing was written. On error, <returnvalue>-1</returnvalue>
|
||
|
is returned, and the <varname>errno</varname> variable is set
|
||
|
appropriately. In this case the next write will start at the beginning
|
||
|
of a new frame. Possible error codes are:</para>
|
||
|
|
||
|
<variablelist>
|
||
|
<varlistentry>
|
||
|
<term><errorcode>EAGAIN</errorcode></term>
|
||
|
<listitem>
|
||
|
<para>Non-blocking I/O has been selected using the <link
|
||
|
linkend="func-open"><constant>O_NONBLOCK</constant></link> flag and no
|
||
|
buffer space was available to write the data immediately.</para>
|
||
|
</listitem>
|
||
|
</varlistentry>
|
||
|
<varlistentry>
|
||
|
<term><errorcode>EBADF</errorcode></term>
|
||
|
<listitem>
|
||
|
<para><parameter>fd</parameter> is not a valid file
|
||
|
descriptor or is not open for writing.</para>
|
||
|
</listitem>
|
||
|
</varlistentry>
|
||
|
<varlistentry>
|
||
|
<term><errorcode>EBUSY</errorcode></term>
|
||
|
<listitem>
|
||
|
<para>The driver does not support multiple write streams and the
|
||
|
device is already in use.</para>
|
||
|
</listitem>
|
||
|
</varlistentry>
|
||
|
<varlistentry>
|
||
|
<term><errorcode>EFAULT</errorcode></term>
|
||
|
<listitem>
|
||
|
<para><parameter>buf</parameter> references an inaccessible
|
||
|
memory area.</para>
|
||
|
</listitem>
|
||
|
</varlistentry>
|
||
|
<varlistentry>
|
||
|
<term><errorcode>EINTR</errorcode></term>
|
||
|
<listitem>
|
||
|
<para>The call was interrupted by a signal before any
|
||
|
data was written.</para>
|
||
|
</listitem>
|
||
|
</varlistentry>
|
||
|
<varlistentry>
|
||
|
<term><errorcode>EIO</errorcode></term>
|
||
|
<listitem>
|
||
|
<para>I/O error. This indicates some hardware problem.</para>
|
||
|
</listitem>
|
||
|
</varlistentry>
|
||
|
<varlistentry>
|
||
|
<term><errorcode>EINVAL</errorcode></term>
|
||
|
<listitem>
|
||
|
<para>The <function>write()</function> function is not
|
||
|
supported by this driver, not on this device, or generally not on this
|
||
|
type of device.</para>
|
||
|
</listitem>
|
||
|
</varlistentry>
|
||
|
</variablelist>
|
||
|
</refsect1>
|
||
|
</refentry>
|