1 /* Copyright (C) 1991, 92, 96, 97, 98, 99, 2003 Free Software Foundation, Inc.
2    This file is part of the GNU C Library.
3 
4    The GNU C Library is free software; you can redistribute it and/or
5    modify it under the terms of the GNU Lesser General Public
6    License as published by the Free Software Foundation; either
7    version 2.1 of the License, or (at your option) any later version.
8 
9    The GNU C Library is distributed in the hope that it will be useful,
10    but WITHOUT ANY WARRANTY; without even the implied warranty of
11    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12    Lesser General Public License for more details.
13 
14    You should have received a copy of the GNU Lesser General Public
15    License along with the GNU C Library; if not, see
16    <http://www.gnu.org/licenses/>.  */
17 
18 #ifndef _SYS_UIO_H
19 #define _SYS_UIO_H	1
20 
21 #include <features.h>
22 
23 #include <sys/types.h>
24 
25 __BEGIN_DECLS
26 
27 /* This file defines `struct iovec'.  */
28 #include <bits/uio.h>
29 
30 
31 /* Read data from file descriptor FD, and put the result in the
32    buffers described by IOVEC, which is a vector of COUNT `struct iovec's.
33    The buffers are filled in the order specified.
34    Operates just like `read' (see <unistd.h>) except that data are
35    put in IOVEC instead of a contiguous buffer.
36 
37    This function is a cancellation point and therefore not marked with
38    __THROW.  */
39 extern ssize_t readv (int __fd, const struct iovec *__iovec, int __count);
40 
41 extern ssize_t preadv (int __fd, const struct iovec *__iovec, int __count,
42                        off_t offset);
43 
44 /* Write data pointed by the buffers described by IOVEC, which
45    is a vector of COUNT `struct iovec's, to file descriptor FD.
46    The data is written in the order specified.
47    Operates just like `write' (see <unistd.h>) except that the data
48    are taken from IOVEC instead of a contiguous buffer.
49 
50    This function is a cancellation point and therefore not marked with
51    __THROW.  */
52 extern ssize_t writev (int __fd, const struct iovec *__iovec, int __count);
53 
54 extern ssize_t pwritev (int __fd, const struct iovec *__iovec, int __count,
55                         off_t offset);
56 
57 __END_DECLS
58 
59 #endif /* sys/uio.h */
60