Witam.
Mam problem. Chce zadeklarować FILE w main.c natomiast otworzyć plik w funkcji, która mieści się w osobnym pliku. Całość już mi działa ale zwraca zły wynik (zawsze in_handle==NULL jest prawdą). Sprawdzałem w lib.c co jest w argv[] przy wywołaniu programu, kiedy dam argv[0] to mam nazwę pliku a kiedy argv[1] śmieci... jednakże przy fopen muszę mieć argv[1], bo inaczej jest błąd. Całość się kompiluje dobrze, tylko nie działa jak powinno. Gdzie tkwi problem?? czego nie dostrzegam??...
Plik main.c
int main(int argc, char *argv[])
{
FILE *in_handle;
char bufor[BUFSIZ];
if (otworz_plik(in_handle, &argv[1])) {
printf("Plik otwarty");
} else
printf("Blad otwarcie pliku!");
return 0;
}
Plik lib.c
int otworz_plik(FILE * in_handle, char *argv[1])
{
in_handle = fopen(argv[1], "r");
if (in_handle == NULL) {
printf("Poprawne wywolanie: ./main nazwa_pliku\n");
return 0;
} else
return 1;
}
Całość jest tutaj:
https://github.com/smt116/c/tree/master/petle/9