#include #include #include #include #include #include #include #define BUFSIZE 8192 #define NBLKS 20 #define LEN 30 #define TRUE 1 void fillbuf(char *buf, int count, char value) { while (count-- > 0) *buf++ = value; } int main(int argc, char *argv[]) { int bufsize = BUFSIZE; /* Buffer size. Default 8k */ int numblks = NBLKS; /* Number of blocks. Default 20 */ char infile[LEN]; /* Input file. Default "infile" */ int fd1, fd2; int i, n, offset; char *buf; strcpy(infile, "infile"); /* Default input file */ if ((fd1 = open(infile, O_DIRECT|O_RDWR|O_CREAT, 0666)) < 0) { fprintf(stderr, "open infile: %s\n", strerror(errno)); exit(1); } /* Allocate for buf, Create input file */ if ((buf = valloc(bufsize)) == 0) { fprintf(stderr, "valloc buf: %s\n", strerror(errno)); } for (i = 0; i < numblks; i++) { fillbuf(buf, bufsize, 'Z'); if (write(fd1, buf, bufsize) == -1) { fprintf(stderr, "write infile failed: %s\n", strerror(errno)); } } fprintf(stdout, "test: completed\n"); exit(0); }