/***********************************************************************
* Code listing from "Advanced Linux Programming," by CodeSourcery LLC *
* Copyright (C) 2001 by New Riders Publishing *
* See COPYRIGHT for license information. *
***********************************************************************/
#include
#include
#include
#include
#include
int main (int argc, char* argv[])
{
int zero = 0;
const int megabyte = 1024 * 1024;
char* filename = argv[1];
size_t length = (size_t) atoi (argv[2]) * megabyte;
/* Open a new file. */
int fd = open (filename, O_WRONLY | O_CREAT | O_EXCL, 0666);
/* Jump to one byte short of where we want the file to end. */
lseek (fd, length - 1, SEEK_SET);
/* Write a single zero byte. */
write (fd, &zero, 1);
/* All done. */
close (fd);
return 0;
}