1
0
Files
irix-657m-src/eoe/cmd/sun/tests/cachefs/truncate.c
2022-09-29 17:59:04 +03:00

62 lines
1.1 KiB
C

#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/fcntl.h>
char *Progname;
extern int errno;
int
main(int argc, char **argv)
{
int bytes;
struct stat sb;
char *testfile = "truncate.test";
int fd;
char buf[4096];
Progname = *argv++;
if (argc >= 2) {
testfile = *argv++;
}
while (1) {
fd = open(testfile, O_RDWR | O_CREAT, 0666);
if (fd == -1) {
perror("open/create");
exit(errno);
}
bytes = write(fd, buf, sizeof(buf));
if (bytes < sizeof(buf)) {
if (bytes == -1) {
perror("write");
exit(errno);
} else {
fprintf(stderr, "Short write (%d of %d) to %s\n", bytes,
sizeof(buf), testfile);
exit(-1);
}
}
if (close(fd) == -1) {
perror("close");
exit(errno);
}
fd = open(testfile, O_RDWR | O_TRUNC, 0666);
if (fd == -1) {
perror("open/truncate");
exit(errno);
}
if (close(fd) == -1) {
perror("close");
exit(errno);
}
if (stat(testfile, &sb) == -1) {
perror("stat");
exit(errno);
} else if (sb.st_size != 0) {
fprintf(stderr, "File size not zero\n");
exit(-1);
}
}
}