//
//  Ouverture_fichiers.c
//  ordi
//
//  Created by léo LELLOUCHE on 24/05/2016.
//  Copyright © 2016 léo LELLOUCHE. All rights reserved.
//

#include "Header.h"

int         nb_line(int fd)
{
    char    c;
    int     nb_lines;
    
    nb_lines = 1;
    while(read(fd, &c, 1) != 0)
    {
        if (c == '\n')
            nb_lines++;
    }
    lseek(fd, 0, SEEK_SET);
    return (nb_lines);
}

void        ouverture_fichiers(int **fd, int **size)
{
    int i;
    
    (*fd)[0] = open("./Fichiers Source/MOTHERBOARD.csv", O_RDONLY);
    (*fd)[1] = open("./Fichiers Source/RAM.csv", O_RDONLY);
    (*fd)[2] = open("./Fichiers Source/PROCO.csv", O_RDONLY);
    (*fd)[3] = open("./Fichiers Source/GRAPHICS.csv", O_RDONLY);
    (*fd)[4] = open("./Fichiers Source/HDD.csv", O_RDONLY);
    (*fd)[5] = open("./Fichiers Source/ECRAN.csv", O_RDONLY);
    (*fd)[6] = open("./Fichiers Source/SOFTS.csv", O_RDONLY);
    (*fd)[7] = open("./Fichiers Source/CONFIGS.csv", O_RDONLY);
    
    if (((*fd)[0] == -1) || ((*fd)[1] == -1) || ((*fd)[2] == -1) || ((*fd)[3] == -1) || ((*fd)[4] == -1) || ((*fd)[5] == -1) || ((*fd)[6] == -1) || ((*fd)[7] == -1))
    {
        printf("Erreur ouverture fichier");
        exit(EXIT_FAILURE);
    }
    
    i = 0;
    while(i < 8)
    {
        (*size)[i] = nb_line((*fd)[i]);
        i++;
    }
}

void        fermeture_fichiers(int **fd, int **size)
{
    close(*(fd)[0]);
    close(*(fd)[1]);
    close(*(fd)[2]);
    close(*(fd)[3]);
    close(*(fd)[4]);
    close(*(fd)[5]);
    close(*(fd)[6]);
    close(*(fd)[7]);
    
    free(*fd);
    free(*size);
    *fd = NULL;
    *size = NULL;
}