OpenCoverage

zwrite.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/bash/src/lib/sh/zwrite.c
Source codeSwitch to Preprocessed file
LineSourceCount
1/* zwrite - write contents of buffer to file descriptor, retrying on error */-
2-
3/* Copyright (C) 1999-2002 Free Software Foundation, Inc.-
4-
5 This file is part of GNU Bash, the Bourne Again SHell.-
6-
7 Bash is free software: you can redistribute it and/or modify-
8 it under the terms of the GNU General Public License as published by-
9 the Free Software Foundation, either version 3 of the License, or-
10 (at your option) any later version.-
11-
12 Bash is distributed in the hope that it will be useful,-
13 but WITHOUT ANY WARRANTY; without even the implied warranty of-
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the-
15 GNU General Public License for more details.-
16-
17 You should have received a copy of the GNU General Public License-
18 along with Bash. If not, see <http://www.gnu.org/licenses/>.-
19*/-
20-
21#include <config.h>-
22-
23#include <sys/types.h>-
24-
25#if defined (HAVE_UNISTD_H)-
26# include <unistd.h>-
27#endif-
28-
29#include <errno.h>-
30-
31#if !defined (errno)-
32extern int errno;-
33#endif-
34-
35/* Write NB bytes from BUF to file descriptor FD, retrying the write if-
36 it is interrupted. We retry three times if we get a zero-length-
37 write. Any other signal causes this function to return prematurely. */-
38int-
39zwrite (fd, buf, nb)-
40 int fd;-
41 char *buf;-
42 size_t nb;-
43{-
44 int n, i, nt;-
45-
46 for (n = nb, nt = 0;;)-
47 {-
48 i = write (fd, buf, n);-
49 if (i > 0)
i > 0Description
TRUEevaluated 3 times by 1 test
Evaluated by:
  • Self test
FALSEnever evaluated
0-3
50 {-
51 n -= i;-
52 if (n <= 0)
n <= 0Description
TRUEevaluated 3 times by 1 test
Evaluated by:
  • Self test
FALSEnever evaluated
0-3
53 return nb;
executed 3 times by 1 test: return nb;
Executed by:
  • Self test
3
54 buf += i;-
55 }
never executed: end of block
0
56 else if (i == 0)
i == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
57 {-
58 if (++nt > 3)
++nt > 3Description
TRUEnever evaluated
FALSEnever evaluated
0
59 return (nb - n);
never executed: return (nb - n);
0
60 }
never executed: end of block
0
61 else if (errno != EINTR)
(*__errno_location ()) != 4Description
TRUEnever evaluated
FALSEnever evaluated
0
62 return -1;
never executed: return -1;
0
63 }
never executed: end of block
0
64}
never executed: end of block
0
Source codeSwitch to Preprocessed file

Generated by Squish Coco 4.1.2