Keresés

Részletes keresés

khiraly Creative Commons License 2002.06.08 0 0 128
viszont van egy masik problema yol.
Es ez nagyon zavaro:
Tehat:
gcc valami.o -oakaarmi akarmi.c

Es ha belejavitok a "valami.c" be,
amit elotte igy forgatok le:
gcc -c -ovalami.o valami.c

Akkor nem torli, hanem a var-bol, vagy a tmp-bol vagy a fene tudja honnan
mar _LEFORDITOTT_ programot linkeli hozza a gcc.

Tehat a gondom azzal van, hogy igy nem lehet haladni a fejlesztessel, mert allandoan a regit linkeli hozza.

Hogy lehetne ezt megadni???
Marmint hogy mindig valoban forgassa ujra, es ne a mittomen honnan vbegye?
Mert most nem veszi figyelembe a valami.o-t ...

5let?

Előzmény: khiraly (127)
khiraly Creative Commons License 2002.06.07 0 0 127
ehh, hamar jart a szam. Elneztem egy cuccost jol.

Bocsesz hogy itt nyaggatlak titeket, de egyetemi feladatot lassacskan be kell adni, aztan kezdek parazni....;P

Szal most mar jo. Azert kosz mindenkinek(gondolom csomoan segitettek volna...;)

Előzmény: khiraly (126)
khiraly Creative Commons License 2002.06.07 0 0 126
Na egy oriasi problemam lenne.
Nemtok normalisan megirni egy Makefile-t es nem tudom, hogy mit, es hol csesztem el.
Ez egy kicsit hosszu ide leirni, de ha valakinek lenne egy szabad 5 perce, akkor megnezne?
(atkuldenem neki levelben az egesz programot)
Nem nagy progi vegulis.
Eleg fontos lenne....
Szeder Creative Commons License 2002.06.03 0 0 125
khiraly:

apt-get install glibc-doc

info libc

/waitpid

udv,
sz

Előzmény: khiraly (123)
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)

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