Freesco, NND, CDN, EOS

http://www.freesco.pl
Dzisiaj jest piątek, 20 czerwca 2025, 01:39

Strefa czasowa UTC+2godz.




Nowy temat Odpowiedz w temacie  [ Posty: 7 ] 
Autor Wiadomość
Post: sobota, 17 lutego 2007, 11:29 
Offline

Rejestracja: czwartek, 14 grudnia 2006, 20:13
Posty: 7
Witam. Ponawiam swój problem ponieważ nie potrafie sobie z nim sam poradzić, a na forum nie znalazłem odpowiedzi.
Mam zainstalowane NND 0.2 + install_devel.

Chodzi o programy skompilowane w gcc.
Program kończy się nagłym komunikatem
: [/] [] ()
Naruszenie ochrony pamięci

konkretnie wtedy gdy chcę zamknąć już wcześniej otworzony za pomocą programu plik. Wszystkie inne linijki programu są wykonywane bez problemów aż do momentu polecenia zamknięcia pliku.

Czy komuś udało się stworzyć i zamknąć plik swoim programem skompilowanym w gcc? I jeżeli tak to czego u mnie jeszcze brakuje do poprawnego działania?

Z góry dziekuję za odpowiedź.


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: sobota, 17 lutego 2007, 12:00 
Offline
Użytkownik

Rejestracja: poniedziałek, 17 kwietnia 2006, 20:05
Posty: 261
Lokalizacja: Pszczyna
Piszesz jakiś własny program? Jak tak to wklej kod (odpowiedzialny za odczyt pliku), pomyślimy.

_________________
Wszystko powinno się robić tak prosto,
jak tylko to jest możliwe - ale nigdy nie prościej.


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: sobota, 17 lutego 2007, 12:59 
Offline

Rejestracja: czwartek, 14 grudnia 2006, 20:13
Posty: 7
Dzieki za odzew :)

Chciałem napisać programik, który odczytywałby wartość zmiennej z pliku i na podstawie jej wartości ustawiałby odpowiedni stan na porcie równoległym.
Takie komendy jak pętle, if'y i wyświetlanie komunikatów działają jak należy, jednak schody zaczynaja się gdy zaczynam brac się za pliki.

Program na początku otwiera plik
: [/] [] ()
FILE *plik=fopen("plik.txt","r");

(gdy zamiast r dam parametr w, plik jest nawet tworzony)
dalsze polecenia działają poprawnie lecz gdy chcę zamknąć plik:
: [/] [] ()
fclose(plik);

Program zawiesza się i wyświetlany zostaje komunikat
: [/] [] ()
Naruszenie ochrony pamięci


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: sobota, 17 lutego 2007, 13:27 
Offline
Użytkownik

Rejestracja: poniedziałek, 17 kwietnia 2006, 20:05
Posty: 261
Lokalizacja: Pszczyna
Ja wiem że jak pliku nie uda się otworzyć przez
: [/] [] ()
FILE *plik=fopen("plik.txt","r");

to próba jego zamknięcia kończy sie błędem

Z powyższego wynika jednak że wszytko powinno grać, proponuje ci jednak zrobić to tak
: [/] [] ()
    FILE *file;

    if ((file = fopen("NAZWAPLIKU", "r")) == NULL) {
        perror(NULL);
        exit(EXIT_FAILURE);
    }

 INSTRUKCE

 fclose(file)


_________________
Wszystko powinno się robić tak prosto,
jak tylko to jest możliwe - ale nigdy nie prościej.


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: sobota, 17 lutego 2007, 14:30 
Offline

Rejestracja: czwartek, 14 grudnia 2006, 20:13
Posty: 7
Zrobiłem jak mi podałeś i rzeczywiście zadziałalo. Ja miałem to zrobione tak:
: [/] [] ()
#include <sys/io.h>
#include <stdio.h>

int main(){

FILE *plik=fopen("plik.txt","r");

if (plik=NULL){
       perror("Nie udało się otworzyć pliku");
       return 1;
       }

printf("Plik otwarty pomyślnie!\n");


fclose(plik);

return 0;

}

niby wyświetlało, że otwarte pomyślnie, ale zamknąć nie chciało.
Dzięki za pomoc!!!


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: sobota, 17 lutego 2007, 14:36 
Offline
Użytkownik

Rejestracja: poniedziałek, 17 kwietnia 2006, 20:05
Posty: 261
Lokalizacja: Pszczyna
qwertz3 pisze:
Zrobiłem jak mi podałeś i rzeczywiście zadziałalo. Ja miałem to zrobione tak:
: [/] [] ()
if (plik=NULL){



Wszytko miałeś dobrze, tylko w tej linijce musiałeś użyć "==" a nie operatora przypisania "=", pamiętaj o tym na przyszłość!

PS: Nie żebym punkty pomógł kolekcjonował no ale...

_________________
Wszystko powinno się robić tak prosto,
jak tylko to jest możliwe - ale nigdy nie prościej.


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: sobota, 17 lutego 2007, 15:53 
Offline
Honorowy Admin

Rejestracja: piątek, 5 lipca 2002, 17:30
Posty: 7800
Lokalizacja: Słupsk
Baj de łej.. to jeśli ma to mieć związek z tematem forum, to powinniśmy tu mieć, źródełka wraz z opisem jak to działa... :)

_________________
Obrazek Belfer.one.PL
Obrazek Audio Cafe


Na górę
 Wyświetl profil  
 
Wyświetl posty nie starsze niż:  Sortuj wg  
Nowy temat Odpowiedz w temacie  [ Posty: 7 ] 

Strefa czasowa UTC+2godz.


Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 27 gości


Nie możesz tworzyć nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Przejdź do:  
Technologię dostarcza phpBB® Forum Software © phpBB Group
Hosting: Compus-Net
RobertKonik.pl