[+] Kopiowanie plików w programie napisanym w C+ pod Ubuntu
: 16 marca 2011, 15:00
Problem wygląda następująco:
Program uruchamiamy z dwoma parametrami - nazwa pliku, który chcemy skopiować i nazwa pliku, który będzie jego kopią. Kompilacja przechodzi bez żadnych problemów, ale po uruchomieniu pokazuje się komunikat:
i nowo powstały plik (który miał być kopią podanego pliku) powstaje, jednak jest zupełnie pusty.
Pomoże ktoś (używam Ubuntu 10.10, kompiluje w gcc, program napisany w c).
Oto kod:
Program uruchamiamy z dwoma parametrami - nazwa pliku, który chcemy skopiować i nazwa pliku, który będzie jego kopią. Kompilacja przechodzi bez żadnych problemów, ale po uruchomieniu pokazuje się komunikat:
Kod: Zaznacz cały
Naruszenie ochrony pamięci
Pomoże ktoś (używam Ubuntu 10.10, kompiluje w gcc, program napisany w c).
Oto kod:
Kod: Zaznacz cały
#include <stdio.h>
int main(int argc, char *argv[])
{
int i,j,ile;
char buf [128];
FILE *we,*wy;
if (argc!=3){ puts ("Podaj nazwy pliku xrodlowego i wynikowego"); return -1; }
we = fopen(argv[1], "rb");
if (we = NULL) { printf ("blad otwarcia %s\n", argv[1]); return -2; }
wy = fopen (argv[2], "wb");
if (wy = NULL){ printf("blad otwarcia pliku wy, %s\n", argv[2]); return -3;}
while ((ile = fread(buf,1,127,we))>0)
{
fwrite(buf,1,ile,wy);
}
fclose(we);
fclose(wy);
}