Функция открытия файла - C (СИ)
Формулировка задачи:
Сделал функцию. Запутался с внешними и внутренними переменными. Мне надо сделать FILE *f в main или внешней чтобы после выполнения функции был доступ к f . Как сделать f внутренней для функции, где она используется-не хочется заносить эту переменную во внешние переменные.
Не понимаю почему работает char *filename и char *mode, когда вызываю функцию так
Ведь под "pen.dat" и "ab" строчки не выделено памяти.
void openFile(FILE *f,char *filename,char *mode){
f=fopen(filename,mode);
if (f==NULL){
perror("Error opening file");
getchar();
exit (-1);
}
}openFile(f,"pen.dat","ab");
Решение задачи: «Функция открытия файла»
textual
Листинг программы
#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);
}