ftruncate -- Truncate a File

SYNOPSIS

 #include <unistd.h>

 int ftruncate(int fn, off_t length);
 

DESCRIPTION

ftruncate truncates an OpenEdition file open for write access to length in bytes. fn is the file descriptor for the file to be truncated. ftruncate does not change the current file position.

RETURN VALUE

ftruncate returns a 0 if it is successful and a - 1 if it is not successful.

IMPLEMENTATION

Data beyond the end of the truncated file are lost. If the length is greater than the current file size, zero bytes are added to the file at the end.

EXAMPLE

  #include <unistd.h>
  #include <sys/types.h>
  #include <sys/stat.h>
  #include <fcntl.h>
  #include <stdio.h>

  main()
  {
     FILE *testfile;
     int fd, long size;
     char flname[] ="trunc.test";

     if ((fd=creat(flname,S_IRUSR1)) < 0)
        perror("creat() error");
     else {
        if ((testfile = fdopen(fd, "w")) == NULL) {
           perror("fdopen() error");
           close(fd);
        }
     }
     fputs("ABCDEFGHIJKLMNOPQRSTUVWXYZ",testfile);
     fflush(testfile);
     size = lseek(fd, 0, SEEK_END);
     printf("The file is %ld bytes long.n", size);

     if (ftruncate(fd, 3) !=0)
        perror("ftruncate() error");
     else {
        size = lseek(fd, 0, SEEK_END);
        printf("The file is now %ld bytes long.n", size);
     }
  fclose(testfile);
  unlink(flname);
  }

 

SEE ALSO


Copyright (c) 1998 SAS Institute Inc. Cary, NC, USA. All rights reserved.