Salve a tutti!

Ho i seguenti 2 files

Nel file 1 c'è:
0 0
0 1
0 2

Nel file 2 c'è:
0 0 0
0 0 1
0 1 0

In un programma C
Se dim vale 2 deve andare bene il primo file che ha 2 elementi per riga, e inserire i dati in una matrice
Se dim vale 3 deve andare bene il secondo..., ma non il primo.
E' ovvio che un file con n elementi per riga va bene solo se dim = n;

ora ho il seguente listato:

Codice PHP:
...
int i=0j=0righe=3dim 2nmatrice[righe][dim];
char temp[16], buf[16];

while( 
i<righe && (n=read(fdbuf2*dim*sizeof(char) ) > 0))
{
   
0;
   
temp strtok(buf" ");
   while(
temp != NULL && j<dim)
   {
      if(
atoi(temp)>=0)
      {
          
matrice[i][j] = atoi(temp);
       
j++;    
       
temp strtok(NULL" ");
       }
   }
   
i++;


Cosa c'è che non va?

Non riesco a capire come fare a contare gli elementi per ogni riga, visto che la read prende il numero di byte da leggere...quindi se dim=2, indipendentemente dal file legge i dati e li salva nella matrice...(anche quando non dovrebbe esempio dim=2 e file con 3 elementi per riga...)

Chi mi aiuta?

Spero di essermi spiegato...