Dlaczegoo... fopen

0
#include <stdio.h>

int main(void)
{
 
 FILE *o;
 int x;
 
 
 if( (o=fopen("/tmp/programming/tekst","r")) != NULL)
  {
   printf("Plik juz istnieje!\\n");
   return(-1);
  }
 
 else
  {
   fclose(o);
   printf("Tworze plik tekst\\n");
   creat("/tmp/programming/tekst",0622);
   
   printf("Otwieram go do zapisu\\n");
   o=fopen("/tmp/programming/tekst","w");
   
   printf("Wpisuje do niego ciag znakow\\n");
   x=fprintf(o,"QPA\\n");
   
   printf("Zamykam plik\\n");
   fclose(o);
  }
 
 return 0;
}

bash-2.05b$ gcc -o 1 1.c
bash-2.05b$ ./1
Segmentation fault
bash-2.05b$

Tak jak wczoraj w Kubie Wojewódzkim... "Dlaczego.......!!!! "

[hurra] </quote>

0

nie wiem czy creat nie zwraca czasem deskryptora pliku daj:
fd = creat...
close(fd);
i dopiero otwieraj plik od nowa

0
#include <stdio.h>

int main(void)
{
 
 FILE *o;
 int x;
 
 
 if( (o=fopen("/tmp/programming/tekst","r")) != NULL)
  {
   printf("Plik juz istnieje!\\n");
   return(-1);
  }
 
 else
  {
/*   fclose(o); // nie trzeba zamykac, jezeli takiego pliku nie ma, przeciez o == NULL */
   printf("Tworze plik tekstowy otwierajac go do zapisu\\n");
   o=fopen("/tmp/programming/tekst","w");/* w otwiera plik do zapisu, a jezeli nie istnieje to go stworzy */
   
   printf("Wpisuje do niego ciag znakow\\n");
   x=fprintf(o,"QPA\\n");
   
   printf("Zamykam plik\\n");
   fclose(o);
  }
 
 return 0;
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1