/* $Cambridge: hermes/doc/benchmarks/SR2300-vs-EonStor/write_straight.c,v 1.1 2003/10/19 19:43:05 dpc22 Exp $ */

#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <errno.h>

int
main()
{
    int i, j, fd, r;
    char name[64];
    static char buf[4096];  /* BSS */

    for (i=0 ; i < 1000 ; i++) {
        sprintf(name, "%d", i);
        mkdir(name, 0750);
    }

    for (i=0 ; i < 1000 ; i++) {
        for (j = 0 ; j < 1000 ; j++) {
            sprintf(name, "%d/%d", i, j);

            if ((fd=open(name, O_WRONLY|O_CREAT|O_TRUNC, 0644)) < 0) {
                fprintf(stderr, "Failed to open: %s", name);
                exit(1);
            }
            if ((r = write(fd, buf, 4096)) < 0) {
                fprintf(stderr, "write() failed: %s\n", strerror(errno));
                exit(1);
            }
            close(fd);
        }
    }
}

