1 | /* 2 | mkfile.c 3 | -------- 4 | Real stupid program to make an empty file. 5 | Should take advantage of sparse stuff too! 6 | 7 | $Id: mkfile.c,v 1.3 2003/10/12 12:58:53 stewart Exp $ 8 | 9 | (C)2003 Stewart Smith 10 | Distributed under the GNU Public License 11 | */ 12 | 13 | #include <stdio.h> 14 | #include <stdlib.h> 15 | #include <unistd.h> 16 | #include <sys/types.h> 17 | #include <sys/stat.h> 18 | #include <fcntl.h> 19 | 20 | typedef u_int64_t u64; 21 | 22 | u64 atou64(const char *nptr) 23 | { 24 | u64 out,i; 25 | for(out=0,i=0;nptr[i]!='\0';i++) 26 | { 27 | out*=10; 28 | out+=nptr[i]-'0'; 29 | } 30 | 31 | return out; 32 | } 33 | 34 | int main(int argc,char* argv[]) 35 | { 36 | FILE* file; 37 | 38 | if(argc<4) 39 | { 40 | fprintf(stderr,"Usage:\n"); 41 | fprintf(stderr,"\t%s file bsize blocksnr\n\n",argv[0]); 42 | exit(1); 43 | } 44 | 45 | file = fopen(argv[1],"w"); 46 | fseek(file,atou64(argv[2])*atou64(argv[3]),SEEK_SET); 47 | fprintf(file,"%c",0); 48 | fclose(file); 49 | return 0; 50 | }