#include <rudiments/file.h>
#include <rudiments/permissions.h>
#include <rudiments/datetime.h>
#include <rudiments/stdio.h>
int main(int argc, const char **argv) {
file f;
uint32_t i;
uint32_t j;
char c;
// open/create the file
f.open("testfile",O_WRONLY|O_CREAT|O_TRUNC,
permissions::evalPermString("rw-rw-rw-"));
// write 1mb of characters to the file, unbuffered
stdoutput.write("writing unbuffered...\n");
for (i=0; i<1024*1024; i++) {
f.write('a');
}
stdoutput.write("done\n");
// truncate the file
f.truncate();
// write 1mb of characters to the file, buffered
stdoutput.write("writing buffered...\n");
f.setWriteBufferSize(4096);
for (i=0; i<1024*1024; i++) {
f.write('a');
}
f.flushWriteBuffer(-1,-1);
stdoutput.write("done\n");
// read 1mb of characters from the file, unbuffered (10 times)
stdoutput.write("reading unbuffered...\n");
for (i=0; i<10; i++) {
f.setPositionRelativeToBeginning(0);
for (j=0; j<1024*1024; j++) {
f.read(&c);
}
}
stdoutput.write("done\n");
// read 1mb of characters from the file, buffered (10 times)
stdoutput.write("reading buffered...\n");
for (i=0; i<10; i++) {
f.setPositionRelativeToBeginning(0);
for (j=0; j<1024*1024; j++) {
f.read(&c);
}
}
stdoutput.write("done\n");
}