51 lines
956 B
C
51 lines
956 B
C
#include "types.h"
|
|
#include "stat.h"
|
|
#include "user.h"
|
|
#include "fcntl.h"
|
|
|
|
int
|
|
main()
|
|
{
|
|
char buf[512];
|
|
int fd, i, sectors;
|
|
|
|
fd = open("big.file", O_CREATE | O_WRONLY);
|
|
if(fd < 0){
|
|
printf(2, "big: cannot open big.file for writing\n");
|
|
exit();
|
|
}
|
|
|
|
sectors = 0;
|
|
while(1){
|
|
*(int*)buf = sectors;
|
|
int cc = write(fd, buf, sizeof(buf));
|
|
if(cc <= 0)
|
|
break;
|
|
sectors++;
|
|
if (sectors % 100 == 0)
|
|
printf(2, ".");
|
|
}
|
|
|
|
printf(1, "\nwrote %d sectors\n", sectors);
|
|
|
|
close(fd);
|
|
fd = open("big.file", O_RDONLY);
|
|
if(fd < 0){
|
|
printf(2, "big: cannot re-open big.file for reading\n");
|
|
exit();
|
|
}
|
|
for(i = 0; i < sectors; i++){
|
|
int cc = read(fd, buf, sizeof(buf));
|
|
if(cc <= 0){
|
|
printf(2, "big: read error at sector %d\n", i);
|
|
exit();
|
|
}
|
|
if(*(int*)buf != i){
|
|
printf(2, "big: read the wrong data (%d) for sector %d\n",
|
|
*(int*)buf, i);
|
|
exit();
|
|
}
|
|
}
|
|
|
|
exit();
|
|
}
|