[C] Output van system() gebruiken.. kan dat eigenlijk wel?

Pagina: 1
Acties:

  • xzenor
  • Registratie: Maart 2001
  • Laatst online: 14-10-2022

xzenor

Ja doe maar. 1 klontje suiker.

Topicstarter
Hi,

Ik ben me helemaal rot aan het zoeken naar een manier om output van system(command goes here) in een string te krijgen..
Maar kan het eigenlijjk wel?
Ik google me scheel maar ik krijg alleen maar spul over system development en al die rotzooi.. als ik op system() zoek dan leest google over die () heen en gaat alleen met het woord system verder.. (en wat er verder in staat natuurlijk maar niet de () )

is het wel mogelijk om output van system() nog te gebruiken? misschien met wegschrijven naar file, maar dat wilde ik nou juist niet..

Ik ben bezig met standaard ansi c, dus geen c++

Als er iemand WEL een link heeft waar het gewoon online ergens staat dan is dat natuurlijk ook voldoende.. ik wil best zelf zoeken maar ik kan het gewoon echt niet vinden..

  • Aetje
  • Registratie: September 2001
  • Laatst online: 18-12-2025

Aetje

Troubleshooting met HAMERRR

http://aspn.activestate.c...on/ext/simpleExample.html

Zo dus? De main() van elk C programma hoort als een integer gedefineerd te zijn... Dat je een int terugkrijgt is dan logisch. int -> string conversie hoef ik hopelijk niet uit te leggen ;)

Forget your fears...
...and want to know more...


  • Soultaker
  • Registratie: September 2000
  • Laatst online: 12:58
Ja hoor; voordat je je system call doet even stdout redirecten naar een file descriptor van je keuze.

Zie verder: man reopen of fdopen.

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 12:58
Aetje schreef op 27 November 2002 @ 03:15:
http://aspn.activestate.c...on/ext/simpleExample.html

Zo dus? De main() van elk C programma hoort als een integer gedefineerd te zijn... Dat je een int terugkrijgt is dan logisch. int -> string conversie hoef ik hopelijk niet uit te leggen ;)
Ik neem even gemakshalve aan dat het om de uitvoer, die naar stdout geschreven wordt, gaat. Waarschijnlijk dus niet de exit code van de applicatie. (Ik neem ook aan dat de topicstarter al eens "man system" heeft ingetypt; dan zou dat alvast geen probleem meer kunnen zijn.)

  • xzenor
  • Registratie: Maart 2001
  • Laatst online: 14-10-2022

xzenor

Ja doe maar. 1 klontje suiker.

Topicstarter
klopt, het gaat om een uitvoer van:
system(echo 'GET /guild_characters.cfm?ID=9069'|nc www.guildmagic.com 80)

die output daarvan wil ik in een string proppen..
dat is best veel maar dat moet wel kunnen..

Het kan waarschijnlijk VEEEEL beter met sockets enzo door mijn eigen connectio te bouwen maar dat gaat allemaal nog wat te ver voor me.. ben nog maar een beginnertje..
de combinatie commano sturen en dan wat terug komt ontvangen is nog niet echt gelukt met sockets..
voor alleen sturen of alleen ontvangen heb ik wel een voorbeeld gevonden..
ben ze langzaamaan wel aan het uitwerken maar dat komt allemaal nog wel..
voor nu is de system() effies het makkelijkste denk ik

Verwijderd

Ik neem aan dat je BSD gebruikt, dus zoek je popen() (man popen). Als je zowel stdin als stdout (als stderr) van je child process wilt redirecten zul je zelf aan de slag moeten met pipe() en fork(); vervolgens dup2() en execlp() in het child process en ten slotte weer in de parent wait() of waitpid() (in deze volgorde).

Verwijderd

Soultaker schreef op 27 November 2002 @ 03:15:
Ja hoor; voordat je je system call doet even stdout redirecten naar een file descriptor van je keuze.

Zie verder: man reopen of fdopen.
Euh... Voor zover ik weet werkt dat alleen op je eigen proces' stdout, en maakt system() een nieuwe aan die weer de normale stdout heeft (eigen proces). :?.

  • igmar
  • Registratie: April 2000
  • Laatst online: 23-08 16:57

igmar

ISO20022

possamai schreef op 27 november 2002 @ 03:06:
Hi,

Ik ben me helemaal rot aan het zoeken naar een manier om output van system(command goes here) in een string te krijgen..
Maar kan het eigenlijjk wel?
man popen(). Je kan ook zelf de fork(), exec() en dan de filedescriptions dup()en en de juiste sluiten.

Verwijderd

Verwijderd schreef op 27 November 2002 @ 04:56:
Ik neem aan dat je BSD gebruikt, dus zoek je popen() (man popen). Als je zowel stdin als stdout (als stderr) van je child process wilt redirecten zul je zelf aan de slag moeten met pipe() en fork(); vervolgens dup2() en execlp() in het child process en ten slotte weer in de parent wait() of waitpid() (in deze volgorde).
4 uur later:
igmar schreef op 27 November 2002 @ 09:07:
man popen(). Je kan ook zelf de fork(), exec() en dan de filedescriptions dup()en en de juiste sluiten.
:)

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 09-01 11:25

D2k

* D2k heeft hier ooit een ranzig script over gepost
eens kijken of ik dat nog kan terugvinden

.edit: geinig topic ook :{ [rml][ C] fout...[/rml]

[ Voor 30% gewijzigd door D2k op 27-11-2002 12:13 ]

Doet iets met Cloud (MS/IBM)


  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

code:
1
2
//constanten (geen defines ivm typechecking)
const int nbOfCmds = 20;
Tenslotte kan je bij een define geen type opgeven :X :P

*in een hoekje duikt*

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • D2k
  • Registratie: Januari 2001
  • Laatst online: 09-01 11:25

D2k

drm schreef op 27 november 2002 @ 13:39:
[...]
Tenslotte kan je bij een define geen type opgeven :X :P

*in een hoekje duikt*

ik heb me daar laten vertellen dat het over typechecking ging ;)
geen idee of het ook echt zo is :)

Doet iets met Cloud (MS/IBM)


  • Soultaker
  • Registratie: September 2000
  • Laatst online: 12:58
Verwijderd schreef op 27 november 2002 @ 08:58:
Euh... Voor zover ik weet werkt dat alleen op je eigen proces' stdout, en maakt system() een nieuwe aan die weer de normale stdout heeft (eigen proces). :?.
Nee hoor; system() gebruikt gewoon je huidige streams. Maar goed, een pipe gebruiken is natuurlijk veel netter (vooral omdat de uitvoer juist bij voorkeur niet naar een bestand moest).

  • CyBeR
  • Registratie: September 2001
  • Niet online

CyBeR

💩

possamai schreef op 27 November 2002 @ 03:55:
klopt, het gaat om een uitvoer van:
system(echo 'GET /guild_characters.cfm?ID=9069'|nc www.guildmagic.com 80)

die output daarvan wil ik in een string proppen..
dat is best veel maar dat moet wel kunnen..

Het kan waarschijnlijk VEEEEL beter met sockets enzo door mijn eigen connectio te bouwen maar dat gaat allemaal nog wat te ver voor me.. ben nog maar een beginnertje..
de combinatie commano sturen en dan wat terug komt ontvangen is nog niet echt gelukt met sockets..
voor alleen sturen of alleen ontvangen heb ik wel een voorbeeld gevonden..
ben ze langzaamaan wel aan het uitwerken maar dat komt allemaal nog wel..
voor nu is de system() effies het makkelijkste denk ik
Inderdaad een slechte oplossing. Voornamelijk omdat nc niet overal beschikbaar is,en sockets wel. Daarbij is het gewoon vies ;)

als je gewoon de stuur- en ontvangvoorbeelden achter elkaar plakt (niet letterlijk natuurlijk) kom je waarschijnlijk al een heel eind.
Kijk ook eens naar sources van andere (redelijk simpele, zo mogelijk) apps om te zien hoe het werkt. Dit lijkt me namelijk een uitstekende manier om te leren hoe sockets werken. Je leert dingen het beste door het zelf te proberen.

All my posts are provided as-is. They come with NO WARRANTY at all.


  • Soultaker
  • Registratie: September 2000
  • Laatst online: 12:58
CyBeR schreef op 27 November 2002 @ 16:51:
Inderdaad een slechte oplossing. Voornamelijk omdat nc niet overal beschikbaar is,en sockets wel. Daarbij is het gewoon vies ;)

als je gewoon de stuur- en ontvangvoorbeelden achter elkaar plakt (niet letterlijk natuurlijk) kom je waarschijnlijk al een heel eind.
Kijk ook eens naar sources van andere (redelijk simpele, zo mogelijk) apps om te zien hoe het werkt. Dit lijkt me namelijk een uitstekende manier om te leren hoe sockets werken. Je leert dingen het beste door het zelf te proberen.
Eigenlijk suggereer je dus, dat de TS zijn eigen HTTP client maar moet implementeren? Dat lijkt me nog veel viezer dan vertrouwen op de aanwezigheid van een externe applicatie. Met een simpele oplossing be je er immers niet, aangezien HTTP een heleboel verschillende variaties toestaat, waar je (als je het goed wilt doen) allemaal rekening mee moet houden.

Ik ben van mening dat het heel stom is om zelf code te schrijven, om functionaliteit te verkrijgen die allang elders geïmplementeert is. Zeker in dit geval, waarbij de alternatieven ruimschoots afdoende zijn en de code dusdanig ingewikkeld, dat je wel een hele goede reden moet hebben om die te herschrijven.

Ik wil zou dus willen aanraden om een standaard library te gebruiken zoals bijvoorbeeld libfetch, zodat je je verder kunt concentreren op de feitelijke werking van je applicatie: dat deel van de functionaliteit die nog niet door anderen geïmplementeert is.

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 12:58
Waarschuwing! Dit bericht is off-topic! ;)
drm schreef op 27 November 2002 @ 13:39:
kan je bij een define geen type opgeven :X :P
Natuurlijk wel:
C:
1
#define getal ((int)10)


Een goede reden om preprocessor definities te gebruiken, vind ik altijd dat de Microsoft compiler constanten niet at compile time kan evalueren. Dit werkt dus niet:
C:
1
2
const int size = 10;
int array[size];

Dit soort situaties komen nogal eens voor. Erg jammer dat dit niet werkt, want eigenlijk vind ik deze oplossing mooier dan die waarin SIZE gedefinieerd wordt voor en ingevuld door de preprocessor.

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

[nohtml]
Soultaker:
Waarschuwing! Dit bericht is off-topic! ;)

Natuurlijk wel:
C:
1
#define getal ((int)10)
* drm verbaast zich :D
Soultaker, de grote sarcast, snapt mijn sarcastische grapje niet ;)

Overigens doelde ikzelf op postfix type definitie, as in
C:
1
#define wat_een_mooie_long_unsigned_int 20UL
, maar casten kan natuurlijk ook. Is flexibeler ook

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • Soultaker
  • Registratie: September 2000
  • Laatst online: 12:58
drm schreef op 27 november 2002 @ 17:29:
[nohtml]
[...]
* drm verbaast zich :D
Soultaker, de grote sarcast, snapt mijn sarcastische grapje niet ;)
* Soultaker gaat zich schamen Afbeeldingslocatie: http://help.microsoft.com/!data/nl_nl/data/messengerv46_msn.its51/$content$/embaressed_smile.gif
edit:
Die smiley zocht ik!

[ Voor 26% gewijzigd door Soultaker op 27-11-2002 17:58 ]


  • GAEvakYD
  • Registratie: Juni 2001
  • Laatst online: 26-08 21:50
Hoi,

Ik heb een soort gelijke vraag. Ik wil ook een system call doen vanuit een ANSI C proggie. Namelijk een ping command. Ik wil de uitvoer hiervan niet op het scherm hebben maar gewoon in een char* of zoiets dergelijks.

Ik heb nu dit staan (pingresult is char*), ik krijg de melding "warning: assignment makes pointer from integer without a cast"

pingresult = execl("/bin/ping", "ping", "212.142.32.43", (char *)0);
perror("Execl failed");

Ps het is een linux proggie zoals jullie misschien al zagen.

  • CyBeR
  • Registratie: September 2001
  • Niet online

CyBeR

💩

Soultaker schreef op 27 november 2002 @ 17:09:
[...]


Eigenlijk suggereer je dus, dat de TS zijn eigen HTTP client maar moet implementeren? Dat lijkt me nog veel viezer dan vertrouwen op de aanwezigheid van een externe applicatie. Met een simpele oplossing be je er immers niet, aangezien HTTP een heleboel verschillende variaties toestaat, waar je (als je het goed wilt doen) allemaal rekening mee moet houden.

Ik ben van mening dat het heel stom is om zelf code te schrijven, om functionaliteit te verkrijgen die allang elders geïmplementeert is. Zeker in dit geval, waarbij de alternatieven ruimschoots afdoende zijn en de code dusdanig ingewikkeld, dat je wel een hele goede reden moet hebben om die te herschrijven.

Ik wil zou dus willen aanraden om een standaard library te gebruiken zoals bijvoorbeeld libfetch, zodat je je verder kunt concentreren op de feitelijke werking van je applicatie: dat deel van de functionaliteit die nog niet door anderen geïmplementeert is.
Een library gebruiken is geen slecht idee nee, maar als je ooit wilt leren sockets te gebruiken heb je daar niet veel aan. Bovendien doet netcat (nc) ook niets met protocols, het verstuurt alleen data. In effect dus het zelfde als zelf sockets gebruiken. Bovendien is het HTTP protocol niet bepaald de moeilijkste die ik tegengekomen ben.

All my posts are provided as-is. They come with NO WARRANTY at all.


  • Soultaker
  • Registratie: September 2000
  • Laatst online: 12:58
GAEvakYD schreef op 28 november 2002 @ 08:09:
Ik heb nu dit staan (pingresult is char*), ik krijg de melding "warning: assignment makes pointer from integer without a cast"

pingresult = execl("/bin/ping", "ping", "212.142.32.43", (char *)0);
En die waarschuwing bracht je niet op het idee om in de manual te kijken wat execl nu precies retourneert? Het is dus een 'int' en geen 'char*' en hij bevat al helemaal niet de uitvoer die naar stdout is geschreven. Ben je misschien in de war met PHP? :o
CyBeR schreef op 28 November 2002 @ 09:57:
Een library gebruiken is geen slecht idee nee, maar als je ooit wilt leren sockets te gebruiken heb je daar niet veel aan. Bovendien doet netcat (nc) ook niets met protocols, het verstuurt alleen data. In effect dus het zelfde als zelf sockets gebruiken. Bovendien is het HTTP protocol niet bepaald de moeilijkste die ik tegengekomen ben.
Op dit moment heb je er niet zoveel aan om dingen opnieuw te maken die je nu niet wil maken, lijkt me. Dingen leren is altijd goed, maar om het nou als excuus te gebruiken om op een onhandige manier te werk te gaan. Van fouten leer je, dus kun je beter zo veel mogelijk fout doen; daar ruikt jou standpunt een beetje naar.

En inderdaad, nc is dermate simpel dat je er ook een heleboel 'subtiele' punten als decodering mee mist, maar dat die oplossing ontoereikend was, daar waren we het nu juist al over eens. Dat lijkt me dus juist geen argument om een andere oplossing te kiezen, die op z'n best net zo slecht is.

  • GAEvakYD
  • Registratie: Juni 2001
  • Laatst online: 26-08 21:50
Klopt, ik had gezien dat er geen int of char * terug kwam. Ik wilde alleen weten hoe ik dan wel die result kan opvragen.

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

En dan vraag ik me af of je het hele topic al gelezen hebt. De magic word is pipes.

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • xzenor
  • Registratie: Maart 2001
  • Laatst online: 14-10-2022

xzenor

Ja doe maar. 1 klontje suiker.

Topicstarter
CyBeR schreef op 27 november 2002 @ 16:51:
[...]


Inderdaad een slechte oplossing. Voornamelijk omdat nc niet overal beschikbaar is,en sockets wel. Daarbij is het gewoon vies ;)

als je gewoon de stuur- en ontvangvoorbeelden achter elkaar plakt (niet letterlijk natuurlijk) kom je waarschijnlijk al een heel eind.
Kijk ook eens naar sources van andere (redelijk simpele, zo mogelijk) apps om te zien hoe het werkt. Dit lijkt me namelijk een uitstekende manier om te leren hoe sockets werken. Je leert dingen het beste door het zelf te proberen.
klopt het is niet al te schoontjes om zo een systemcall te doen maar ik weet het anders niet. ben nog maar net een beginnertje.. en in het boek dat ik hier heb staat niks over sockets dus dat zal ik van het internet moeten plukken..
'k heb hier en daar wel wat gevonden, maar dat is nog niet newbie genoeg om het te snappen.. op zich snap ik sockets wel, maar het programmeren er van is het grootste probleem :)

overigens heb ik dat wel gedaan.. "gewoon proberen"
Toen ging gelijk mijn telnet daemon plat..
(misschien nog ff op bugtraq melden.. bij mijn isp werkte het ook...)

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 12:58
possamai schreef op 04 December 2002 @ 02:07:
overigens heb ik dat wel gedaan.. "gewoon proberen"
Toen ging gelijk mijn telnet daemon plat..
(misschien nog ff op bugtraq melden.. bij mijn isp werkte het ook...)
Dat lijkt me wel zeer onwaarschijnlijk, eigenlijk. Gezien de rest van je reacties in deze thread geloof ik er dan ook niets van. Niets persoonlijks en ik wil je niet afzeiken, maar als je echt denkt code te hebben die een gangbare telnet daemon doet crashen, dan wil ik je uitnodigen dat nader te onderzoeken en eventueel hier de code te plaatsen.

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Soultaker:
dan wil ik je uitnodigen dat nader te onderzoeken en eventueel hier de code te plaatsen.

:)

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 17:12

.oisyn

Moderator Devschuur®

Demotivational Speaker

misschien spuit 11, ik zag de thread nu pas :P

Soultaker schreef op 27 november 2002 @ 17:14:
Een goede reden om preprocessor definities te gebruiken, vind ik altijd dat de Microsoft compiler constanten niet at compile time kan evalueren. Dit werkt dus niet:
C:
1
2
const int size = 10;
int array[size];

Dit soort situaties komen nogal eens voor. Erg jammer dat dit niet werkt, want eigenlijk vind ik deze oplossing mooier dan die waarin SIZE gedefinieerd wordt voor en ingevuld door de preprocessor.


dit verbaasd mij ten zeerste. Ik heb VS6 nu niet geinstalleerd staan, maar ik geloof dat array sizes dmv const ints bij mij toch echt prima werkten hoor.

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Vroeger deed de Borland compiler daar ook moeilijk over. g++ nu iig niet (meer?).

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • Soultaker
  • Registratie: September 2000
  • Laatst online: 12:58
.oisyn schreef op 04 december 2002 @ 04:08:
dit verbaasd mij ten zeerste. Ik heb VS6 nu niet geinstalleerd staan, maar ik geloof dat array sizes dmv const ints bij mij toch echt prima werkten hoor.
Ok, ik heb het speciaal voor jou even getest. ;)

C:
1
2
3
4
5
6
7
int main()
{
    const int length = 10;
    int array[length];

    return 0;
}


Ik krijg precies drie (gerelateerde) foutmeldingen:
code:
1
2
3
test.c(4) : error C2057: expected constant expression
test.c(4) : error C2466: cannot allocate an array of constant size 0
test.c(4) : error C2133: 'array' : unknown size


Ik gebruik een standaard Visual C++ 6.0 project, zonder gekke compiler instellingen, maar het mag nog steeds niet.

Vergis je je niet toevallig met C++, waarin dit soort constructies wel toegestaan zijn?

[ Voor 9% gewijzigd door Soultaker op 04-12-2002 11:26 ]


  • xzenor
  • Registratie: Maart 2001
  • Laatst online: 14-10-2022

xzenor

Ja doe maar. 1 klontje suiker.

Topicstarter
Soultaker schreef op 04 December 2002 @ 02:19:
[...]

Dat lijkt me wel zeer onwaarschijnlijk, eigenlijk. Gezien de rest van je reacties in deze thread geloof ik er dan ook niets van. Niets persoonlijks en ik wil je niet afzeiken, maar als je echt denkt code te hebben die een gangbare telnet daemon doet crashen, dan wil ik je uitnodigen dat nader te onderzoeken en eventueel hier de code te plaatsen.
keej.. het is overigens op FreeBSD.. ik heb het op een linuxbak geprobeerd en op een bsdi machine en daar gebeurd er verder niets mee..
ook heb ik al met de freebsd developers zelf gemailt maar die zeggen dat het op te lossen is door gewoon een limiet aan te geven van packets per seconde in inetd.conf..
en dat werkt ook wel maar dat zou dan default zo moeten staan lijkt me.
Overigens wordt de telnetd automatisch na een tijdje weer gestart door de inetd dus het is op zich geen schokend foutje..
maar toch, het hoort niet te kunnen lijkt me..
bij deze effe de code.. ik denk dat iedereen dit wel kan schrijven eigenlijk.. het is een voorbeeldje wat ik van een site geplukt heb wat constant in een loop gaat.. meer niet.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#define DEST_IP "127.0.0.1"
#define DEST_PORT 23

main()
{
 for (;;) {
  int sockfd;
  struct sockaddr_in dest_addr;
  sockfd = socket(AF_INET, SOCK_STREAM, 0);
  dest_addr.sin_family = AF_INET;
  dest_addr.sin_port = htons(DEST_PORT);
  dest_addr.sin_addr.s_addr = inet_addr(DEST_IP);
  memset(&(dest_addr.sin_zero), '\0', 8);
  connect(sockfd, (struct sockaddr *)&dest_addr, sizeof(struct sockaddr));
 }
}


de for heb ik er zelf omheen gebouwd..
dit werkt dus op FreeBSD he..
dus als het op je linux machine niet werkt dan klopt dat gewoon.

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 12:58
possamai schreef op 04 december 2002 @ 23:25:
keej.. het is overigens op FreeBSD.. ik heb het op een linuxbak geprobeerd en op een bsdi machine en daar gebeurd er verder niets mee..
Ik moest het natuurlijk even proberen en je hebt gelijk; de telnet daemon crasht inderdaad! :)

Wel een erg lompe fout, als je 't mij vraagt. Dat had ik toch niet verwacht van de FreeBSD developers. Ik krijg eerst nette "telnetd: All network ports in use." foutmeldingen, later sluit 'ie al direct de verbinding af en daarna is 'ie helemaal stuk (tot ik inetd signal die 'm herstart).

  • xzenor
  • Registratie: Maart 2001
  • Laatst online: 14-10-2022

xzenor

Ja doe maar. 1 klontje suiker.

Topicstarter
yups
puur toeval.. maarja..
ik gaat 'm ff op bugtraq pleuren.. misschien dat in 4.8 dat een verse inetd.conf zit.. of een aanpassing in de code van telnetd ofzo..

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 17:12

.oisyn

Moderator Devschuur®

Demotivational Speaker

Soultaker schreef op 04 december 2002 @ 11:26:
Vergis je je niet toevallig met C++, waarin dit soort constructies wel toegestaan zijn?


yup! dat is het! was even vergeten dat het over C ging
my bad :)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.

Pagina: 1