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

int main()
{
 int fd,n,d;
 char s[20];
 char *p;
 off_t i;

  if((fd=open("file.c",O_RDWR|O_CREAT,0664))<0)
   printf("errore nella open \n");

  printf("Scrivi nel file \n");
  n=read(STDIN_FILENO,s,20);
  write(fd,s,n);
  i=lseek(fd,10,SEEK_CUR);
  printf("Scrivi dopo il buco \n");
  d=read(STDIN_FILENO,p,20);
  write(fd,p,d); 
  return (0);
}
è semplicissimo ma dopo averlo eseguito se apro "file.c" mi dice: il file://home...../file.c è binario, salvandolo otterai un file danneggiato. Il file contiene quello che ho scritto sulla linea di comando ma se voglio modificarlo direttamente non me lo fa fare in realtà su questo file dopo non mi fa fare niente. PERCHE'??