[C] nawet printf jako 2-sza funkcja nie dziala w programie

Potrzebujesz pomocy z C, C++, perl, python, itp.
qwertyyu
Posty: 7
Rejestracja: 14 stycznia 2008, 21:54

[C] nawet printf jako 2-sza funkcja nie dziala w programie

Post autor: qwertyyu »

Witam. Pisze program klient-serwer z mechanizmami IPC.
Serwer nie dziala;/ dodatkowo nawet printf jako pierwsza funkcja zaraz po mainie w tym programie nic nie robi, tak jakby program sie wieszal... Bede bardzo wdzieczny za pokazanie mi bledu...

Kod w zalaczniku, bo byl za dlugi.
0dd
Beginner
Posty: 104
Rejestracja: 16 lipca 2007, 19:43
Lokalizacja: Nowy Sacz / Krakow

Post autor: 0dd »

masakra, kod nie jest czytelny. powinienes to podzielic na mniejsze metody. dolacz plik common.h bo bez niego nie da sie skompilowac
qwertyyu
Posty: 7
Rejestracja: 14 stycznia 2008, 21:54

Post autor: qwertyyu »

Dolaczam common.h

Prosze o pomoc, to dla mnie bardzo wazne.
0dd
Beginner
Posty: 104
Rejestracja: 16 lipca 2007, 19:43
Lokalizacja: Nowy Sacz / Krakow

Post autor: 0dd »

printf wypisuje, bo czemu nie mial by wypisywac, nie dales '\n' i dlatego nie przechodzi do nowej lini

dobrym zwyczajem jest kompilowac przynajmniej z opcja -Wall, jesli sprobujesz to zobaczysz ze nie includujesz plikow naglowkowych do fork i time, zle parametry przekazujesz do printf oraz ze sugerowane sa nawiasy.

najlepiej usun wszystkie warningi
qwertyyu
Posty: 7
Rejestracja: 14 stycznia 2008, 21:54

Post autor: qwertyyu »

Ja musze uruchamiac ten program zdalnie, na innym kompie, bo nie mam linuxa i tam nie wyswietla mi nawet printfa...;/ Mozesz powiedziec jakich plikow naglowkowych mi brakuje i w jakim sensie czy raczej w ktorym miejscu przekazuje zly parametr do printfa? Tzn te uwagi o ktorych mowiles...
Bylbym wdzieczny.
AdeBe
Junior Member
Posty: 825
Rejestracja: 01 grudnia 2007, 14:41

Post autor: AdeBe »

qwertyyu

Kod: Zaznacz cały

man fork
oraz

Kod: Zaznacz cały

man 3 time
i mozesz to nawet w google wpisac.
Generalnie man jest skarbnicą wiedzy dla programisty.
A odnośnie reszty uwag: skompiluj sobie ten program i sam zobaczysz o co chodzi :)
Pod windowsa jest DevC++, z tego co wiem to korzysta z gcc więc nie ma problemu

I jeszcze taka mała rada, sprawdzaj czy funkcje się wykonały, np. czy strcpy się wykonało albo czy msgsnd się wykonało.
0dd
Beginner
Posty: 104
Rejestracja: 16 lipca 2007, 19:43
Lokalizacja: Nowy Sacz / Krakow

Post autor: 0dd »

gcc -Wall projserv.c

Kod: Zaznacz cały

projserv.c: In function ‘main’:
projserv.c:49: warning: format ‘%s’ expects type ‘char *’, but argument 3 has type ‘char (*)[10]’
projserv.c:50: warning: format ‘%s’ expects type ‘char *’, but argument 3 has type ‘char (*)[10]’
projserv.c:77: warning: format ‘%s’ expects type ‘char *’, but argument 3 has type ‘char (*)[10]’
projserv.c:102: warning: implicit declaration of function ‘time’
projserv.c:136: warning: implicit declaration of function ‘fork’
projserv.c:160: warning: suggest parentheses around assignment used as truth value
projserv.c:176: warning: suggest parentheses around assignment used as truth value
projserv.c:216: warning: suggest parentheses around assignment used as truth value
projserv.c:349: warning: statement with no effect
projserv.c:394: warning: statement with no effect
projserv.c:430: warning: suggest parentheses around assignment used as truth value
projserv.c:441: warning: suggest parentheses around assignment used as truth value
projserv.c:464: warning: statement with no effect
projserv.c:508: warning: statement with no effect
projserv.c:551: warning: statement with no effect
projserv.c:598: warning: suggest parentheses around assignment used as truth value
projserv.c:621: warning: statement with no effect
projserv.c:669: warning: suggest parentheses around assignment used as truth value
projserv.c:692: warning: statement with no effect
projserv.c:20: warning: unused variable ‘wyslana’
projserv.c:18: warning: unused variable ‘h3’
projserv.c:18: warning: unused variable ‘h2’
projserv.c:16: warning: unused variable ‘n’
projserv.c:16: warning: unused variable ‘l’
qwertyyu
Posty: 7
Rejestracja: 14 stycznia 2008, 21:54

Post autor: qwertyyu »

Dzieki za ten kod z kompilacji, nie wiem jak ustawic ta opcje -Wall w devc++, a na tamtym zdalnie z nia kompilujac cos sie wykrzaczalo. Poprawilem kilka bledow, dodalem te naglowki.

Mozecie mi jeszcze powiedziec w jaki sposob sprawdzac czy te f-kcje sie wykonaly?
0dd
Beginner
Posty: 104
Rejestracja: 16 lipca 2007, 19:43
Lokalizacja: Nowy Sacz / Krakow

Post autor: 0dd »

jesli chcesz wiedziec czy fukcja sie wykonala poprawnie to sprawdz zrwocona przez nia wartosc
qwertyyu
Posty: 7
Rejestracja: 14 stycznia 2008, 21:54

Post autor: qwertyyu »

Nie moge sobie z tym poradzic:/
Dorzucam jeszcze klienta i pliki cfg i mam prosbe, zeby ktos przegladnal mi np.same logowanie i napisal co zle robie jesli to mozliwe, bo sam nie moge sobie poradzic.
Z gory dzieki.

[ Dodano: 2008-01-15, 12:50 ]
users.cfg ma postac

Kod: Zaznacz cały

qwe1 plo
qwe2 dfds
qwe3 fdsa
w wierszu najpierw nazwa uzytkownika, potem haslo.
ODPOWIEDZ