#include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; int main (int argc, char *argv[]) { if (argc<5){ cout << "usage " << endl; return 0; } char* dev_name = argv[1]; int fd = open(dev_name, O_LARGEFILE | O_DIRECT | O_WRONLY , 777 ); if (fd<0){ perror("open "); return (-1); } long long write_sz_bytes = ( (long long)atoi(argv[2]))<<10; long long offset_sz_bytes = atoi(argv[3])<<10; int loops = atoi(argv[4]); char* buffer = (char*)valloc(write_sz_bytes); if (!buffer) { perror("alloc : "); return -1; } memset(buffer,0x00,write_sz_bytes); while( (--loops)>0 ){ int ret = pwrite64(fd,buffer,write_sz_bytes,offset_sz_bytes); if (ret<0) { perror("failed to write: "); printf("read_sz_kb=%d offset_sz_kb=%d\n",write_sz_bytes,offset_sz_bytes); return -1; } offset_sz_bytes += write_sz_bytes; printf("writing %lld bytes at offset %lld\n",write_sz_bytes,offset_sz_bytes); } return(0); }