C/C++

TCP kapcsolat recv nem tér vissza

Fórumok

Írtam egy kis servert (s1), amihez ha kapcsolódik egy kliens, akkor a server kapcsolódik egy másik serverhez (s2). Az S2 egyenlőre annyit csinál, hogy amit kap azt szétküldi a többi kapcsolódott clienshez. Ha az S1-hez kapcsolódik több kliens és az egyik küld valamit, akkor az egyik a küldőn kívül megkapja megkapja. De ezt követően a S1 nem tér vissza a recv(..) az első kiolvasást követően.
Ha csak egy cliens csatlakozik a S1-hez és egy másik a S2-höz, akkor tökéletesen kommunikál egymással a két kliens. (S1 ugyebár csatlakozik S2-höz)

Esetleg valakinek van ötlete.

glade +autogen.sh

Fórumok

Sziasztok!

Meg tudná nekem valaki mondani, milyen paraméterrel kell meghívni a glade által legyártott projektben az autogen.sh-t hogy a keletkező Makefile tartalmazza a -lssl -t is, hogy a make kiadása után ezt az opciót is használja fordításkor? az autogen.sh egyébként az automake és az autoconf -ot hívja meg és az így legyártott configure szkriptet futtatja. az autogen.sh a hozzá adott paraméterrel hívja meg a configure scriptet.

GCC hogyan

Fórumok

Hello!
Az lenne a kerdesem, hogy a gcc alapertelmezesit at lehet-e allitani?
Marmint peldaul .c vegzodesu fajlok eseten ne az ansi szabvanyt vegye figyelembe hanem pl. az iso-t. Tudom -std=c99, de ezt hogy lehet alapertelmezette tenni? Van a GCC-nek valamilyen konfiguracios fajlja? (Mar elore latom a sok oltast)

printf -hez hasonló függvény

Fórumok

Sziasztok!

szeretnék csinálni egy a printf paraméterezéséhez hasonló függvényt. Nézegetem a printf deklarációját, de nem nagyon látom át. esetleg tudna valaki segíteni, hogyan tudnám megoldani ezt?

do_it (?????)
{

//itt pedig kiíratnánm a képernyőre (vagy ahová akarom) a formázott szöveget
}

int
main()
{
do_it("hello: %s %d\n",str,x);
}

xauth, setuid

Fórumok

Hello!

Az a nagy problemam, hogy egy programon belul el kellene ernem, hogy egy adott user tudjon az X-re irni. Ehhez egy masik user MAGIC COOKIE-jat kellene bemasolnom a user Xauthority-jebe. Eddig hasonlot sem csinaltam, amit probaltam, az pedig nem mukodott (roviden ezt csinaltam:
1. seteuid(masik user);
2. get_magic_cookie();
3. seteuid(regi_user);
4. copy_magic_cookie() az xauthority-be).

Van valakinek esetleg egy mukodo megoldasa?

Elore is koszi minden segitseget!

Udv,
Ct

GTK+ widget frissítése

Fórumok

Sziasztok!

Egy textview -be írok egy szöveget, majd elvégzek egy CPU -t igen komolyan terhelő műveletet. a gondom az, hogy nem frissíti a textviewet miután beleírok, csak később és ez zavaró. lehet valahogy kényszeríteni, hogy még a következő művelet előtt frissítse?

C/gcc bug a switch-ben?!

Fórumok

Sziasztok!

A minap egy switch-t tartalmazó függvényt szintaktikai hiba miatt nem tudtam lefordítani a gcc-vel. Nem értettem mi a probléma, utánajártam, próbálgattam, és amit tapasztaltam, nem hittem el.(még most sem..)
A próba kód a következő:
#include
int main()
{
int k = A;
switch (k)
{
case 0 :
/*int i;*/
printf("A\n");
break;
case 1 :
printf("B\n");
break;
case 2 :
printf("C\n");
break;
}
return 0;
}

Ez a kód minden további nélkül lefordul, és helyesen működik. Azonban ha kiveszitek a kommentből az int i; -t szintaktikai hibát fogtok kapni(legalábbis remélem.)
Nálam ezt:

$ gcc -o proba switch_bug.c
switch_bug.c: In function 'main':
switch_bug.c:10: error: syntax error before 'int'

gcc version 4.0.2 20050808 (prerelease) (Ubuntu 4.0.1-4ubuntu9)

Ha az int i; elé teszek egy printf-t, if-t, függvényhívást, bármit, akkor lefordul. A tapasztalataim alapján akkor nem fordul le, ha a case akarmi : után jön egyből ez a deklaráció. (unsigned long int-re, char-ra, mindenre ez van.)

Most én vagyok a nagyon lamer, és nem tudtam ezt a szintaktikai ficsőrt, vagy ez tényleg valami hiba?!

GTK+ szignálküldés: delete-event

Fórumok

Van egy programom, amelyben feldolgozom az alkalmazás főablakára irányuló delete_event szignált:

gboolean main_window_delete_event (GtkWidget * widget, GdkEvent * event, gpointer user_data) {
g_print ("delete-event\n");
return FALSE;
}

A szigálkezelő függvény a FALSE visszatérési értékkel jelzi, hogy az alkalmazás kiléphet, ha pedig a visszatérési érték TRUE, akkor az alkalmazás fut tovább.

Azt szerettem volna, hogy ha a program menűjéből kiválaszták a kilépés menűpontot, akkor egyszerűen küldje el a főablaknak a "delete-event" szignált, így az egész kilépési folyamatot csak egyszer kell megírnom, és a lehetőségekhez képest még szabályos is maradok:

void menuitem_quit_activate (GtkMenuItem * menuitem, gpointer user_data) {
/* a foablaknak kuldunk egy "delete_event" szignalt */
gboolean teszt;

g_signal_emit_by_name (G_OBJECT(main_window), "delete_event", G_TYPE_NONE, &teszt);
g_print ("eredmeny: %d\n", teszt);
}

Ha ez a szignálkezelő függvény végrehajtódik, akkor sikeresen elküldi a főablaknak a szignált (vagyis kiíródik a "delete-event" szöveg), a "teszt" változóban visszakapom annak a szignálkezelő függvénynek a visszatérési értékét, de a program nem lép ki, hanem továbbfut. Hiába játszadoztam a "delete-event" szignál visszatérési értékével, nem jutottam tovább.

Mi lehet a hiba, és a helyes megoldás?

C++ hálózatkezelés hogyan? STL-ben van-e?

Fórumok

Sziasztok!

A problémám a következő: C-ben a hálózatkezelést már többé-kevésbé kiismertem, a szokásos sockaddr_in, fd_set, select, send, recv..
Namost én egy C++ programot szeretnék írni (természetesen hálózatkezeléssel kapcsolatos), és szeretnék használni valamilyen letisztult felületet. Kerestem az STL-ben, STL-könyvekben, de ott nem találtam hálózatra vonatkozó osztályokat. Neten találtam ugyan 1-2 ilyen osztályt, - melyet valaki megírt, és biztos jó - de én szeretnék minél kevésbé a szabványtól eltérni. Valaki esetleg tud ilyen szabványos hálózatkezelő osztályt C++-ban?
Olyanra gondolok, mint amilyen Java-ban van, hogy Datagramsocket ds = new Datagramsocket...

Köszi