ciao raga

allora ho un problema con un esercizio

ho un file di testo con su scritto la lunghezza di ogni parola e laparola stessa
esempio

4ciao
5forum
7servizi

devo visualizzare la lunghezza ed dei primi 3 caratteri di ogni stringa contenuta nel file
e devo calcolare la somma dlle lunghezze delle stringhe

qundi in output

riga=4
cia
riga=5
for
riga=7
ser

somma totale parole = 16

purtroppo mi legge troppe righe in più

devo usare io a basso livello (read e write)

mi date una mano?

codice:
#include<stdlib.h>
#include<stddef.h>
#include<stdio.h>
#include<string.h>
#include<unistd.h>
#include<fcntl.h>
#include<sys/types.h>
#include<sys/stat.h>

int fd,i,j,k,c;
int tot=0;
int riga=0;
char stringa[50];
char num[10];
int main(int argc ,char **argv)
{
  fd =open(argv[1],O_RDONLY,0777);
    {
      while(read(fd,num,1)>0)
       {
         i=atoi(num);
         printf("riga = %d\n",i);
         read(fd,stringa,i-1);
         write(1,stringa,3);
         write(1,"\n",2);
         
         tot=tot+i;
        
        }
     }
printf(" somma totale parole = %d\n",tot);   

}