April 2024 | ||||||
Mo | Tu | We | Th | Fr | Sa | Su |
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 1 | 2 | 3 | 4 | 5 |
6 | 7 | 8 | 9 | 10 | 11 | 12 |
001: /* Copyright (C) 1991,1992,1996-1999,2003,2009 Free Software Foundation, Inc. 002: This file is part of the GNU C Library. 003: 004: The GNU C Library is free software; you can redistribute it and/or 005: modify it under the terms of the GNU Lesser General Public 006: License as published by the Free Software Foundation; either 007: version 2.1 of the License, or (at your option) any later version. 008: 009: The GNU C Library is distributed in the hope that it will be useful, 010: but WITHOUT ANY WARRANTY; without even the implied warranty of 011: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 012: Lesser General Public License for more details. 013: 014: You should have received a copy of the GNU Lesser General Public 015: License along with the GNU C Library; if not, write to the Free 016: Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 017: 02111-1307 USA. */ 018: 019: #ifndef _SYS_UIO_H 020: #define _SYS_UIO_H 1 021: 022: #include <features.h> 023: 024: #include <sys/types.h> 025: 026: __BEGIN_DECLS 027: 028: /* This file defines `struct iovec'. */ 029: #include <bits/uio.h> 030: 031: 032: /* Read data from file descriptor FD, and put the result in the 033: buffers described by IOVEC, which is a vector of COUNT 'struct iovec's. 034: The buffers are filled in the order specified. 035: Operates just like 'read' (see <unistd.h>) except that data are 036: put in IOVEC instead of a contiguous buffer. 037: 038: This function is a cancellation point and therefore not marked with 039: __THROW. */ 040: extern ssize_t readv (int __fd, __const struct iovec *__iovec, int __count) 041: __wur; 042: 043: /* Write data pointed by the buffers described by IOVEC, which 044: is a vector of COUNT 'struct iovec's, to file descriptor FD. 045: The data is written in the order specified. 046: Operates just like 'write' (see <unistd.h>) except that the data 047: are taken from IOVEC instead of a contiguous buffer. 048: 049: This function is a cancellation point and therefore not marked with 050: __THROW. */ 051: extern ssize_t writev (int __fd, __const struct iovec *__iovec, int __count) 052: __wur; 053: 054: 055: #ifdef __USE_BSD 056: # ifndef __USE_FILE_OFFSET64 057: /* Read data from file descriptor FD at the given position OFFSET 058: without change the file pointer, and put the result in the buffers 059: described by IOVEC, which is a vector of COUNT 'struct iovec's. 060: The buffers are filled in the order specified. Operates just like 061: 'pread' (see <unistd.h>) except that data are put in IOVEC instead 062: of a contiguous buffer. 063: 064: This function is a cancellation point and therefore not marked with 065: __THROW. */ 066: extern ssize_t preadv (int __fd, __const struct iovec *__iovec, int __count, 067: __off_t __offset) __wur; 068: 069: /* Write data pointed by the buffers described by IOVEC, which is a 070: vector of COUNT 'struct iovec's, to file descriptor FD at the given 071: position OFFSET without change the file pointer. The data is 072: written in the order specified. Operates just like 'pwrite' (see 073: <unistd.h>) except that the data are taken from IOVEC instead of a 074: contiguous buffer. 075: 076: This function is a cancellation point and therefore not marked with 077: __THROW. */ 078: extern ssize_t pwritev (int __fd, __const struct iovec *__iovec, int __count, 079: __off_t __offset) __wur; 080: # else 081: # ifdef __REDIRECT 082: extern ssize_t __REDIRECT (preadv, (int __fd, __const struct iovec *__iovec, 083: int __count, __off64_t __offset), 084: preadv64) __wur; 085: extern ssize_t __REDIRECT (pwritev, (int __fd, __const struct iovec *__iovec, 086: int __count, __off64_t __offset), 087: pwritev64) __wur; 088: # else 089: # define preadv preadv64 090: # define pwritev pwritev64 091: # endif 092: # endif 093: 094: # ifdef __USE_LARGEFILE64 095: /* Read data from file descriptor FD at the given position OFFSET 096: without change the file pointer, and put the result in the buffers 097: described by IOVEC, which is a vector of COUNT 'struct iovec's. 098: The buffers are filled in the order specified. Operates just like 099: 'pread' (see <unistd.h>) except that data are put in IOVEC instead 100: of a contiguous buffer. 101: 102: This function is a cancellation point and therefore not marked with 103: __THROW. */ 104: extern ssize_t preadv64 (int __fd, __const struct iovec *__iovec, int __count, 105: __off64_t __offset) __wur; 106: 107: /* Write data pointed by the buffers described by IOVEC, which is a 108: vector of COUNT 'struct iovec's, to file descriptor FD at the given 109: position OFFSET without change the file pointer. The data is 110: written in the order specified. Operates just like 'pwrite' (see 111: <unistd.h>) except that the data are taken from IOVEC instead of a 112: contiguous buffer. 113: 114: This function is a cancellation point and therefore not marked with 115: __THROW. */ 116: extern ssize_t pwritev64 (int __fd, __const struct iovec *__iovec, int __count, 117: __off64_t __offset) __wur; 118: # endif 119: #endif /* Use BSD */ 120: 121: __END_DECLS 122: 123: #endif /* sys/uio.h */ 124: