Функция открытия файла - C (СИ)

Формулировка задачи:

Сделал функцию. Запутался с внешними и внутренними переменными. Мне надо сделать FILE *f в main или внешней чтобы после выполнения функции был доступ к f . Как сделать f внутренней для функции, где она используется-не хочется заносить эту переменную во внешние переменные.
void openFile(FILE *f,char *filename,char *mode){
    f=fopen(filename,mode);
    if (f==NULL){
        perror("Error opening file");
        getchar();
        exit (-1);
    }
}
Не понимаю почему работает char *filename и char *mode, когда вызываю функцию так
openFile(f,"pen.dat","ab");
Ведь под "pen.dat" и "ab" строчки не выделено памяти.


textual

Код к задаче: «Функция открытия файла - C (СИ)»

#include <stdio.h>
//void openFile(FILE *fl, char *filename, char *mode);
 
FILE * openFile(char *filename,char *mode)
{
    FILE *f = fopen(filename,mode);
    if (f == NULL)
    {
        perror("Error opening file");
    }
    return f;
}
 
int main()
{
    FILE *f;
    char *name = "test";
    char *mode = "r";
    char buf[100], ch;
    f = openFile(name,mode);
 
    if(fgets(buf,100,f) != NULL)
        printf("%s", buf);
 
}
Эта работа вам не подошла?

Вы всегда можете заказать любую учебную работу у наших авторов от 20 руб.


СДЕЛАЙТЕ РЕПОСТ

10   голосов, оценка 4.100 из 5

Источник
Похожие ответы