Clean up build and remove generated files
[c11concurrency-benchmarks.git] / silo / fileutils.h
1 #pragma once
2
3 #include <unistd.h>
4 #include <errno.h>
5
6 class fileutils {
7 public:
8
9   static int
10   writeall(int fd, const char *buf, int n)
11   {
12     while (n) {
13       int r = write(fd, buf, n);
14       if (unlikely(r < 0))
15         return r;
16       buf += r;
17       n -= r;
18     }
19     return 0;
20   }
21
22   static int
23   readall(int fd, char *buf, int n)
24   {
25     while (n) {
26       int r = read(fd, buf, n);
27       if (r == 0)
28         return EOF;
29       if (r < 0) {
30         if (errno == EAGAIN || errno == EWOULDBLOCK || errno == EINTR)
31           continue;
32         return r;
33       }
34       buf += r;
35       n -= r;
36     }
37     return 0;
38   }
39
40 };