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