Keresés

Részletes keresés

NevemTeve Creative Commons License 2002.06.02 0 0 124
Most eppen Windows-ban vagyok, de nagyon valoszinu hogy a main waitpid valaszol a kerdesedre :-)
Előzmény: khiraly (123)
khiraly Creative Commons License 2002.06.02 0 0 123
Res = waitpid(-1,NULL,WNOHANG);

Es a 3 argumentum az mi?
kosz.

Előzmény: NevemTeve (120)
khiraly Creative Commons License 2002.05.28 0 0 122
Kosz szepen tenyelg most hogy igy mondod, tenyleg a while ciklus. Szal kosz.
Előzmény: NevemTeve (120)
ex_lx Creative Commons License 2002.05.28 0 0 121
Ha jól dereng, éppen minap kérdeztél rá, hogy mire jó ez a

#define VALAMI

definiált érték nélkül. Például erre. Ha a DEBUG szerepelt egy ilyen #define sorral, az #ifdef utáni lesz a while ciklus feltétele, egyébként ez #else utáni.

Előzmény: khiraly (119)
NevemTeve Creative Commons License 2002.05.28 0 0 120
#endif utan miert van 2 {} kozott egy resz?
Mert az a while-ciklus magja! Addig megy a ciklus, amig a BM_Connect true-t nem ad vissza.

Meg ezt a waitpid-es reszt se ertem.
Addig probalkozik a waitpid-del, amig pozitiv szamot nem kap eredmenyul.

Előzmény: khiraly (119)
khiraly Creative Commons License 2002.05.28 0 0 119

#ifdef DEBUG
while(BN_Connect(&Info,irc_server,irc_port,0) != true)
#else
while(BN_Connect(&Info,irc_server,irc_port,PROCESS_NEW_THREAD) != true)
#endif
{
printf("Disconnected.\n");

sleep(10);

printf("Reconnecting...\n");
}

do {
Res = waitpid(-1,NULL,WNOHANG);
sleep(1);
} while(Res <= 0);

return 0;
}


Na ezzel van problemam.
Mivelhogy ennyi az egesz bot lenyegeben.
Tehat ami itt nem vilagos:
#endif utan miert van 2 {} kozott egy resz?
Meg ezt a waitpid-es reszt se ertem.
utanaolvastam a neten, de bevallom oszinten az nekem magas volt.
Szal nem fogtam fel(reszben azert mert angol volt).

En ebbol az egezsbol ennyit sutottem ki:
Kapcsolodik egy szerverre. Es ennyi.

Meg vegulis ez nem is egy ciklus.

Tehat ami magyarazatra szorul:
Egyszer kapcsolodik-e, vagy ha leszakadt, akkor ujra kapcsolodik?
Mert nem latom a ciklust.
Meg a waitpis resz nem vilagos meg...;)
Kosz.

ex_lx Creative Commons License 2002.05.28 0 0 118
"keptarolo = malloc(malloc);"

Bocs', ezzel jó nagy baromságot írtam. Tehát helyesen:

keptarolo = malloc( ahány_bájt_csak_kell );

És persze ennek az ahány_bájt_csak_kell-em nem kell konstansnak lennie.

Előzmény: ex_lx (113)
Egoist Creative Commons License 2002.05.27 0 0 117
Kelleni nem, kell, csak illik.
A main az oprencer felé tér vissza értékkel, ami int kell legyen. Általnosan elfogadott, hogy 0-val tér vissza sikeres befejeződés esetén, nem 0-val, ha valamilyen speciális okból szakadt meg a progi futása (ezért szokott pl sikertelen malloc lekezelésekor egy exit(1) a befelyeztetés módja, mert az 1 != 0). Ezt az értéket DOS alatt felhasználhatod pl az autoexec.bat -ban mint errorlevel, vagy valami hasonló, Linux alatt meg elég sokféle módon.

Üdv: Ego

PS: Úgy rémlik, hogy az ANSI már nem is szereti a void-os main-t.

Előzmény: BaliHB (116)
BaliHB Creative Commons License 2002.05.27 0 0 116
Huh...
Megpróbálom egy könyv segítségével feldolgozni az infókat, de addig is annyit mondjatok meg, hogy miért kell main elé int?
Egoist Creative Commons License 2002.05.27 0 0 115
Adjál át egy tetszőleges méretű 2 dimenziós tömböt paraméterként egy fügvénynek (a 2 méret is paraméterként megy, azaz előre egyik sem ismert). Ennek egyik (talán leggyakrababan alkalmazott) megolása is mutatózgatással történik.
Előzmény: BaliHB (111)
Egoist Creative Commons License 2002.05.27 0 0 114
Nincs időm hosszú magyarázatra, ezért rövid leszek:
A mutatók használatának egyik oka:
A C-ben a paraméterátadás értékszerinti. Ezért egy fügvény nem tudja megváltoztatni az aktuális paraméter értékét. Erre viszont soxor szükség van. Ekkor rákényszerülsz a mutatók használatára. A te könyvedben is biztos benne van a csere (vagy swap) fügvény példája. Azt nézd meg.

Üdv: Ego

Előzmény: BaliHB (111)
ex_lx Creative Commons License 2002.05.27 0 0 113
Hmmm... sejtem, hogy még nem írtál olyan programot, amelyben dinamikus memóriafoglalásra volt szükséged. Pointerek nélkül ez nem (sem) menne.
Hogy mondjak egy tipikus példát, írnod kell egy programot, és ennek része egy teljes bináris fájl (pl. kép) memóriába olvasása. Ha változót deklarálsz, pl. így

unsigned char keptarolo[100000];

biztos lehetsz benne, hogy 1000005 bájtos képet fognak vele kezelni. Ha 100005-re veszed, akkor majd a 10006 bájtossal lesz gond. Ilyenkor lehet azt csinálni, hogy

unsigned char *keptarolo;

keptarolo = calloc(ahány_bájt_csak_kell, 1);

vagy

keptarolo = malloc(malloc);

De ez csak nagyon az eleje...

Előzmény: BaliHB (111)
NevemTeve Creative Commons License 2002.05.27 0 0 112
Peldaul van amikor azt kell hasznalni es kesz, lasd pl int main (int argc, char **argv).
Itt argv egy tombre mutat, melynek elemei stringre mutato pointerek.
argv - char **
argv[0] - char *
argv[0][0] - char
Előzmény: BaliHB (111)
BaliHB Creative Commons License 2002.05.27 0 0 111
Nem a használatát nem értem, hanem csak azt, hogy mire jó.
Előzmény: ex_lx (110)
ex_lx Creative Commons License 2002.05.27 0 0 110
"Amit úgy konkréten nehezen tudok fölfogni, azok a pointerek (*) és a címe (&). (ha jól írtam a nevüket meg őket magukat)"

Ebben sokat segíteni nem nagyon lehet, legfeljebb a könyveket ismételgetni: a pointer tkp. ua., mint a változó, csak máshogy néz ki. Mindenesetre amíg ezt a részt nem érted tökletesen, ne menj az egyszerű mintaprogramoknál tovább! C = mutató mutató hátán.

Előzmény: BaliHB (105)
NevemTeve Creative Commons License 2002.05.27 0 0 109
Az csak a szokozokre es sorvegekre vonatkozik
<PRE>

#include /* itt az van, hogy <stdio.h> */
#include <stdio.h> /* itt az van, hogy &lt;stdio.h&gt; */
</PRE>

Előzmény: Egoist (103)
NevemTeve Creative Commons License 2002.05.27 0 0 108
Szoljal, ha eszedbe jut, mert en meg nem hallottam ilyenrol!
Előzmény: Egoist (101)
NevemTeve Creative Commons License 2002.05.27 0 0 107
Nem, ezen a <PRE>program</PRE> segit

1
2
3
4
Előzmény: khiraly (99)
NevemTeve Creative Commons License 2002.05.27 0 0 106
Remelem valaki kisegit:
#ifndef __TOLLBOT_INTERFACE_H__
#define __TOLLBOT_INTERFACE_H__
#endif
Ezt ha valaki nekem kifejtene?

Az a kerdes, hogy a #define es az #endif kozott van-e valami!

1) Ha nincs, akkor egyszeruen csak el akarta kerulni a "symbol redefined" warningot.

2) Ha van, akkor ez egy header-fileban fordulhat elo (TOLLBOT.H), es a tobbszoros beillesztes (#include) okozta tobbszoros definicio ellen vedi meg a #define es az #endif kozotti reszeket

PS: azon ne aggodj, hogy a definialt szimbolumnak nincs erteke, nem kotelezo, hogy legyen.

Előzmény: khiraly (80)
BaliHB Creative Commons License 2002.05.27 0 0 105
Egyébként már nagyából értem a C szintaktikáját, nem a C-s gondolkodás móddal van már annyira a gond, hanem azzal, hogy a tényleges lehetőségeimet nem ismerem, amiket nyujt.

Amit úgy konkréten nehezen tudok fölfogni, azok a pointerek (*) és a címe (&). (ha jól írtam a nevüket meg őket magukat)

BaliHB Creative Commons License 2002.05.27 0 0 104
Nem azzal van a gond, hogy Cygwin-en nincs XFree.
Tudom, hogy van. Azzal van a gond, hogy fölraktam Cygwin-re, de aztán sem az Mplayer (egyébként úgy portolták Cygwin-re a fejlesztői, hogy gyakorlatilag használhatatlan volt) sem egyéb programoknak a configure szkriptje nem ismeri föl. Próbálkoztam megkeresni a ./configure-ban azt a metódust, ahogy felismeri, de nem találtam.

Nem egy X írásába akarok belefogni!!!
(azért hülye nem vagyok... :)

Előzmény: khiraly (96)
Egoist Creative Commons License 2002.05.27 0 0 103
Megtaláltam (NevemTeve válaszolt a multkori hasonló kérdésemre, most megelőzöm az újabb válaszadást). pre a környezet neve. Itt egy próba:

for (*t = &tomb[7]; t < tomb + 100; ++t) {
itt spacek vannak a sor elejen
es jel:
&
kacsacsorok:
<>
<
>

remelem muxik.

Előzmény: Egoist (101)
Egoist Creative Commons License 2002.05.27 0 0 102
Az 1. sor egy függvény feje. A fügvgény visszatérési értéke egy chaninfo struktúrára mutató mutató. A 2. sor pedig egy ilyen mutató deklarációja.
Előzmény: khiraly (98)
Egoist Creative Commons License 2002.05.27 0 0 101
HA jól tudom, ez nem kell, mivel van valami HTML környezet, ami nem szedi ki az ilyen dolgoka. Csak a neve nem jut eszembe. Aki tudja, írja már le, mert elég sokat inkludolgatunk ide is.
Előzmény: NevemTeve (74)
Egoist Creative Commons License 2002.05.27 0 0 100
Egy nagyon fontos dolgot elfelejtettem: adatszerkezetek.
Tisztába kell jönni mibenlétükkel, és C-beli megvalósításukkal. Enélkül nem lehet programozni. Erröl nem tudok irodalmat, nekem egyetemen tanították (egész jól).
így első programozói feladatok között szerepelhet:
verem, sor, keresőfa, egy- és kétirányba láncolt lista megvalósítása, cirkuláris lista, és ha nagyon tudsz már, akkor mondjuk egy B vagy B+-fa (nekem az utolsó kettőre eddig nem volt türelmem). Ezek azért is jók, mert programozni is tanulsz velük rendesen, meg elég sokat kell mutatózni, ami a C-ben megkerülhetetlen.

És még egy cím, ami 2 dolog miatt sem biztos, hogy jó: www.prog.hu
Egyrészt most valamiért nem érem el, másrészt nem nagyon nézegettem a kezdő szintű C-s dolgokat, de amit láttam, az űgy emlékszem jó volt. És talán adatszerk dolgokat is találsz itt (bár ez se biztos). Na mind1. Nézd meg.

Üdv: Ego

Előzmény: BaliHB (91)
khiraly Creative Commons License 2002.05.27 0 0 99
NevemTeve:
A Space-re megy meg egy ilyen sor kell pluszba?:
s/' '/\&nbsp;:/g
?
Na mind1 probe cseresznye....
(ize meg en leszek a 100.;))
Előzmény: NevemTeve (74)
khiraly Creative Commons License 2002.05.27 0 0 98
Remelem bejon:
struct chaninfo *FindChan(const struct chaninfo *ChanInfo, const char *Channel) {
struct chaninfo *chan;

chan = ChanInfo;
while ((chan->next != NULL) && (strcmp(chan->Channel, Channel) != 0)) {
chan = chan->next;
}
if (strcmp(chan->Channel, Channel) == 0) {
return(chan);
} else {
return (NULL);
}
}

Ennek foleg az elso 2 sorat nem ertem.
Ha ebben valaki kisegitene.
chandinfo=a struktura neve
*FindChan= a struktura definicioja(adattagjai), tehat vegulis egy fuggvenyrol van szo. Miert nincs egy ';' a vegen?

Eddig en _csak_ ilyen "szokvanyos" strukturaat lattam:
struct struktura_azonosito{ tipus1 tag1;
tipus2 tag2;
tipusn tagn;
} ;
struktura_azonosito struktura_valtozo;
(vagy amikor egybe van vonva:
tipusn tagn;
} struktura_valtozo;
)

Szal ami nagyon idegen(magyarazatra szorul):
Hogy lehet meg 1x megadni fuggvenyargumentumkent a structura_azonositot?

Meg miert nincsen ';' a vegen????
(nem, nem a programba sincs pontosvesszo, es hiba nelkul fordul.)

Valahogy valaki valamilyen utan vilagositson fel...;P

Elore is kosz.

Előzmény: NevemTeve (74)
micu Creative Commons License 2002.05.27 0 0 97
A CygWin-nek már van XFree-je. Arra alapul a KDE-CygWin például. http://kde-cygwin.sourceforge.net/
Előzmény: BaliHB (78)
khiraly Creative Commons License 2002.05.27 0 0 96
Ize most jutott eszembe:(reggel mindig tisztabb az ember feje):
olvastam valahol(talan pont az Xfree site-jan?),
szal sztem van az X szervernek(XFree86), cygwines portja.

De amugy eleg durva lehet csak ugy belefogni egy X irasaba....;))))
(de azert sok szerencset...:)

Előzmény: BaliHB (78)
khiraly Creative Commons License 2002.05.27 0 0 95
Ehh Egoist el se hiszed mennyit szenvedtem azzal a biteltolo-s peldaval.
Valahogy Solaris/Sparcon az istennek se akart mukodni.
Aztan, hogy mar ne idegesitsem magam eldontottem magamban, hogy
biztos a Sparc processzor miatt(meg q Big endian, ize miatt nem muxik.

A peldakat nem kell aranyszabalynak venni, es az elmelet miatt kedveltem. ertheto.
Viszont nagyon keves, a fajlkezelesnel nincs egy iagazn komoly program.

Szal kiindulasnak jo, de semmi tobb.

BaliHB: en bot-irasba fogtam bele.
Sztem keres valami egyszeru progit freshmeaten(50-200kbajt) probald megerteni, es irdd meg magad. (valami konzolosat)
De mig nekem nem sikerult, addig ne vedd aranyszabalynak.

Előzmény: Egoist (89)

Ha kedveled azért, ha nem azért nyomj egy lájkot a Fórumért!