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/


Raspunde prin e-mail lui