When trying to close the file after reading it, I get a seg fault on running the program.
    int inputDirectory()
    {
    char fileName[64];char directoryBuffer[256];FILE *fp;
    printf("\n> Please type the filename containing the list of directories. >");
    inputFix(fileName, sizeof(fileName));
    fp = fopen(fileName,"r");
    if(access(fileName, F_OK) == 0)
    {
        if (fp == 0)
        {
            printf("> Error opening file.");
            return 1;
        }
        else
        {
            if (access(fileName, R_OK) == 0)
            {
                while (fgets(directoryBuffer, sizeof(directoryBuffer), (FILE*)fp))
                {       
                    readCheck(directoryBuffer);
                    printf("%s \n", directoryBuffer);
                    getInode(directoryBuffer);
                }
            }
            else
            {
                printf("\n> File can't be read.");
            }
        }
    }
    else
    {
        printf("\n> File %s does not exist ", fileName); 
    }
    fclose(fp);
    return 0;
}
void inputFix(char string[],int length)
{
int ch, len = 0;
fgets(string, length, stdin);
string[strcspn(string, "\r\n")] = '\0';
len = strlen(string);
if (len == length - 1)
{
     while((ch = getchar()) != '\n' && ch != EOF);
}
}
void readCheck(char string[])
{
    string[strcspn(string, "\r\n")] = '\0';
}
Ive been reading into race conditions, but from my understanding there isn't one? Is there a need to check to see if the file exists before trying to open it? Is there a need to include some of the checks that I'm using?
 
     
     
     
    