Witam.
Mam problem z działaniem mojego programu. Program sortuje tylko pierwsza linię pobraną z pliki tekstowego. Chciałbym aby program robił to samo dla następnych linii a nie tylko pierwszej.
Oto kod:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <assert.h>

int porzadek = 1;

int porownaj(char *a, char *b)
{
    if((porzadek >= 0 && strcmp(a, b)>0) || (porzadek < 0 && strcmp(a, b)<=0))
        return 1;
    return 0;
}

void babelki(char** tablica, int N)
{
    int zamienione, i, tmp;
    do
    {
        zamienione=0;
        for(i=0;i<N-1;i++)
            if(porownaj(tablica[i], tablica[i+1]))
            {
                tmp=tablica[i];
                tablica[i]=tablica[i+1];
                tablica[i+1]=tmp;
                zamienione=1;
            }
    }
    while(zamienione);
}

void wypisz(char** tablica, int N){
    char i=0;
    for(i=0;i<N;i++)
        printf("%c", **(tablica+i));
}

void kopiuj(char** skad, char** dokad, int N)
{
    int i;
    for(i=0;i<N; i++)
        *(dokad++)=*(skad++);
}

int main()
{
    char line[256];
    char* sig[256];
    int ilosc = 0;
    int i = 0;

    FILE *infile;
    char *inname = "---";//tutaj jest ścieżka do pliku z którego czytane są linie

    infile = fopen(inname, "r");
    fgets(line, sizeof(line), infile);
    printf("%s\n", line);

    while (*(line+i) != '\0')
    {
        if (*(line+i) != ' ')
            sig[ilosc++] = line+i;
        i++;
    }

    babelki(sig, ilosc);
    wypisz(sig,ilosc);

    return 0;
}

Czy mógłby ktoś podać fragment kodu(prawidłowego) i miejsce w które należy go wstawić? Proszę o szybką pomoc.