Am integrat sursa in mesaj ca altfel vad ca listar o taie.
astea sunt defineurile esentiale:
#define _LARGEFILE64_SOURCE
#define _FILE_OFFSET_BITS 64
#include <stdio.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#define MBYTE (off_t) 1048576
#define GBYTE (off_t) 1073741824
//#define MAX_SIZE (off_t)(91 * 1073741824)
#define MAX_SIZE (off_t)97710505984
#define MAX_MB (off_t)93184
int
main (int argc, char *argv[])
{
int f;
struct stat st;
char buf[MBYTE];
off_t i;
printf ("system uses %1d bit file offsets\n", sizeof (off_t) * 8);
for (i = 0; i < MBYTE; i++)
buf[i] = (char) i;
if ((f = open ("/tmp/sparse", O_RDWR | O_CREAT | O_TRUNC, 511)) < 0)
{
perror ("open(sparse) failed");
exit (1);
}
if (lseek (f, (off_t)MAX_SIZE , SEEK_SET) != (off_t)MAX_SIZE)
{
perror ("lseek(sparse) failed");
close (f);
exit (1);
}
if (-1 == write (f, buf, 1))
{ /* write 1 Byte to create file */
perror ("write(sparse) failed");
close (f);
exit (1);
}
if (-1 == fstat (f, &st))
perror ("fstat(sparse) failed");
else
printf ("stat(sparse): %1lld Bytes\n", st.st_size);
close (f);
if ((f = open ("/tmp/sparse", O_RDWR | O_CREAT | O_TRUNC, 511)) < 0)
{
perror ("open(written) failed");
exit (1);
}
for (i = 0; i < MAX_MB; i++)
{
printf ("\rblock # %4lld", i + 1);
fflush (stdout);
if (-1 == write (f, buf, MBYTE))
{
perror ("write(written)");
close (f);
exit (1);
}
} /* for i */
if (-1 == fstat (f, &st))
perror ("\nfstat(written) failed");
printf ("\nstat(written): %1lld Bytes\n", st.st_size);
close (f);
exit (0);
} /* main() */
---
Pentru dezabonare, trimiteti mail la
[EMAIL PROTECTED] cu subiectul 'unsubscribe rlug'.
REGULI, arhive si alte informatii: http://www.lug.ro/mlist/