PostgreSQL Source Code
git master
pwritev.c
Go to the documentation of this file.
1
/*-------------------------------------------------------------------------
2
*
3
* pwritev.c
4
* Implementation of pwritev(2) for platforms that lack one.
5
*
6
* Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
7
*
8
* IDENTIFICATION
9
* src/port/pwritev.c
10
*
11
*-------------------------------------------------------------------------
12
*/
13
14
15
#include "
c.h
"
16
17
#include <
unistd.h
>
18
19
#include "
port/pg_iovec.h
"
20
21
ssize_t
22
pg_pwritev
(
int
fd
,
const
struct
iovec *iov,
int
iovcnt, off_t offset)
23
{
24
ssize_t sum = 0;
25
ssize_t part;
26
27
for
(
int
i
= 0;
i
< iovcnt; ++
i
)
28
{
29
part =
pg_pwrite
(
fd
, iov[
i
].iov_base, iov[
i
].iov_len, offset);
30
if
(part < 0)
31
{
32
if
(
i
== 0)
33
return
-1;
34
else
35
return
sum;
36
}
37
sum += part;
38
offset += part;
39
if
(part < iov[
i
].iov_len)
40
return
sum;
41
}
42
return
sum;
43
}
c.h
i
int i
Definition:
isn.c:73
pg_iovec.h
pg_pwrite
#define pg_pwrite
Definition:
port.h:226
fd
static int fd(const char *x, int i)
Definition:
preproc-init.c:105
pg_pwritev
ssize_t pg_pwritev(int fd, const struct iovec *iov, int iovcnt, off_t offset)
Definition:
pwritev.c:22
unistd.h
src
port
pwritev.c
Generated on Thu Sep 28 2023 18:13:26 for PostgreSQL Source Code by
1.9.1