#define _LARGEFILE64_SOURCE
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdlib.h>
#include <time.h>
#define BLOCK_SIZE 1<<20ul
#define ITERATIONS 1000
int main( )
{
char * p;
FILE* f;
struct timeval start, end;
double delta;
int fd, i, j;
gettimeofday( & start, NULL) ;
// f = fopen("dummy.bin", "w");
fd = open( "dummy.bin" , O_BINARY | O_DIRECT | O_CREAT | O_WRONLY) ;
sync( ) ;
for ( i = 0 ; i < ITERATIONS; ++ i)
{
for ( j = 0 ; j < BLOCK_SIZE; ++ j)
p[ j] = ( ( char ) i) ^ ( ( char ) j) ;
}
sync( ) ;
gettimeofday( & end, NULL) ;
delta = ( ( end.tv_sec * ( unsigned int ) 1e6 + end.tv_usec ) -
( start.tv_sec * ( unsigned int ) 1e6 + start.tv_usec ) ) / 1.e6 ;
printf ( "%.3f MB/s (%i Mb in %.2fs)\n " , ITERATIONS
/ delta
, ITERATIONS
, delta
) ;
return 0 ;
}
I2RlZmluZSBfTEFSR0VGSUxFNjRfU09VUkNFCiNpbmNsdWRlIDxzdGRpby5oPgojaW5jbHVkZSA8c3lzL3R5cGVzLmg+CiNpbmNsdWRlIDxzeXMvc3RhdC5oPgojaW5jbHVkZSA8ZmNudGwuaD4KI2luY2x1ZGUgPHVuaXN0ZC5oPgojaW5jbHVkZSA8c3RkbGliLmg+CiNpbmNsdWRlIDx0aW1lLmg+CiAKI2RlZmluZSBCTE9DS19TSVpFIDE8PDIwdWwKI2RlZmluZSBJVEVSQVRJT05TIDEwMDAKIAppbnQgbWFpbigpCnsKICAgICAgICBjaGFyKiBwOwogICAgICAgIEZJTEUqIGY7CiAgICAgICAgc3RydWN0IHRpbWV2YWwgc3RhcnQsIGVuZDsKICAgICAgICBkb3VibGUgZGVsdGE7CiAgICAgICAgaW50IGZkLCBpLCBqOwogCiAgICAgICAgcCA9IG1hbGxvYyhCTE9DS19TSVpFKTsKICAgICAgICBnZXR0aW1lb2ZkYXkoJnN0YXJ0LCBOVUxMKTsKCiAgICAgICAgLy8gZiA9IGZvcGVuKCJkdW1teS5iaW4iLCAidyIpOwogICAgICAgIGZkID0gb3BlbigiZHVtbXkuYmluIiwgT19CSU5BUlkgfCBPX0RJUkVDVCB8IE9fQ1JFQVQgfCBPX1dST05MWSk7CiAgICAgICAgZiA9IGZkb3BlbihmZCwgInciKTsKIAogICAgICAgIHN5bmMoKTsKCiAgICAgICAgZm9yIChpID0gMDsgaSA8IElURVJBVElPTlM7ICsraSkKICAgICAgICB7CiAgICAgICAgICAgIGZvciAoaiA9IDA7IGogPCBCTE9DS19TSVpFOyArK2opCiAgICAgICAgICAgICAgICBwW2pdID0gKChjaGFyKWkpXigoY2hhcilqKTsKICAgICAgICAgICAgZndyaXRlKHAsIEJMT0NLX1NJWkUsIDEsIGYpOwogICAgICAgIH0KICAgICAgICBmZmx1c2goZik7CiAgICAgICAgZmNsb3NlKGYpOwogICAgICAgIGZyZWUocCk7CgogCiAgICAgICAgc3luYygpOwogCiAgICAgICAgZ2V0dGltZW9mZGF5KCZlbmQsIE5VTEwpOwogICAgICAgIGRlbHRhID0gKChlbmQudHZfc2VjICogKHVuc2lnbmVkIGludCkxZTYgKyAgIGVuZC50dl91c2VjKSAtIAogICAgICAgICAgICAgICAgICAgICAgICAgKHN0YXJ0LnR2X3NlYyAqICh1bnNpZ25lZCBpbnQpMWU2ICsgc3RhcnQudHZfdXNlYykpIC8gMS5lNjsKICAgICAgIAogICAgICAgIHByaW50ZigiJS4zZiBNQi9zICglaSBNYiBpbiAlLjJmcylcbiIsIElURVJBVElPTlMgLyBkZWx0YSwgSVRFUkFUSU9OUywgZGVsdGEpOwogCiAgICAgICAgcmV0dXJuIDA7Cn0KCg==
compilation info
prog.c: In function ‘main’:
prog.c:22: warning: implicit declaration of function ‘gettimeofday’
prog.c:25: error: ‘O_BINARY’ undeclared (first use in this function)
prog.c:25: error: (Each undeclared identifier is reported only once
prog.c:25: error: for each function it appears in.)
prog.c:25: error: ‘O_DIRECT’ undeclared (first use in this function)
prog.c:34: warning: ignoring return value of ‘fwrite’, declared with attribute warn_unused_result
stdout