Freesco, NND, CDN, EOS http://forum.freesco.pl/ |
|
Naruszenie ochrony pamięci http://forum.freesco.pl/viewtopic.php?f=22&t=14786 |
Strona 1 z 1 |
Autor: | qwertz3 [ sobota, 17 lutego 2007, 11:29 ] |
Tytuł: | Naruszenie ochrony pamięci |
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 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ź. |
Autor: | dawidmo [ sobota, 17 lutego 2007, 12:00 ] |
Tytuł: | |
Piszesz jakiś własny program? Jak tak to wklej kod (odpowiedzialny za odczyt pliku), pomyślimy. |
Autor: | qwertz3 [ sobota, 17 lutego 2007, 12:59 ] |
Tytuł: | |
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 (gdy zamiast r dam parametr w, plik jest nawet tworzony) dalsze polecenia działają poprawnie lecz gdy chcę zamknąć plik: Program zawiesza się i wyświetlany zostaje komunikat |
Autor: | dawidmo [ sobota, 17 lutego 2007, 13:27 ] |
Tytuł: | |
Ja wiem że jak pliku nie uda się otworzyć przez 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) |
Autor: | qwertz3 [ sobota, 17 lutego 2007, 14:30 ] |
Tytuł: | |
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!!! |
Autor: | dawidmo [ sobota, 17 lutego 2007, 14:36 ] |
Tytuł: | |
qwertz3 pisze: Zrobiłem jak mi podałeś i rzeczywiście zadziałalo. Ja miałem to zrobione tak:
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... |
Autor: | Maciek [ sobota, 17 lutego 2007, 15:53 ] |
Tytuł: | |
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... ![]() |
Strona 1 z 1 | Strefa czasowa UTC+2godz. |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |