void xreadall(int fd, void *buf, size_t len);
void xwrite(int fd, void *buf, size_t len);
off_t xlseek(int fd, off_t offset, int whence);
-char *xreadfile(char *name);
+char *xreadfile(char *name, char *buf, off_t len);
int xioctl(int fd, int request, void *data);
char *xgetcwd(void);
void xstat(char *path, struct stat *st);
}
}
-char *xreadfile(char *name)
+char *xreadfile(char *name, char *buf, off_t len)
{
- char *buf = readfile(name, 0, 0);
- if (!buf) perror_exit("xreadfile %s", name);
+ if (!(buf = readfile(name, buf, len))) perror_exit("Bad '%s'", name);
+
return buf;
}
// exit to free. Not supporting nofork for this command any time soon.)
al = TT.f ? TT.f : TT.e;
while (al) {
- if (TT.f) s = ss = xreadfile(al->arg);
+ if (TT.f) s = ss = xreadfile(al->arg, 0, 0);
else s = ss = al->arg;
do {