blob: b0cf5d0e45299a30f96be6ba0673f17f4596e823 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
/* ISC license. */
#include <errno.h>
#include <skalibs/allreadwrite.h>
#include <skalibs/djbunix.h>
int openreadnclose (char const *file, char *s, unsigned int n)
{
register int r ;
int fd = open_readb(file) ;
if (fd == -1) return -1 ;
r = allread(fd, s, n) ;
if (r == -1)
{
fd_close(fd) ;
return -1 ;
}
fd_close(fd) ;
if ((r > 0) && (r < (int)n)) errno = EPIPE ;
return r ;
}
|