Toon posts:

[ C ] Hoe een Dos commando uit te voeren?

Pagina: 1
Acties:
  • 138 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Ik ben nu bezig met een klein simpel proggie, maar ik zit vast op het volgende punt:

Ik wil het DOS commando: "dir *.mp3 /s" uitvoeren. In pascal kon dit via exec ofzoiets, is alweer te lang geleden, mijn vraag aan jullie: Wat is de functie in C om dit of elk ander commando uit te voeren.

PoSeidon OSF
(kom niet met kijk in de MSDN, daar heb ik geen fuck aan)

Verwijderd

system()

  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

wel system.h includen :)

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


Verwijderd

Topicstarter
xal ut vanavond testen: thnx alot

PoSeidon OSF

Verwijderd

Topicstarter
Van de week dus geprobeerd; blijkt: heb ik die system.h niet. Ik had verwacht dat tie wel werd mee geinstalleerd door MS Visual C/C++ maar blijkbaar niet dus. Na wat zoekacties op het inet, heb ik hem nog steeds niet. Nu dus een oproep aan m'n medetweakers: Waar kan ik die system.h halen??

/me weet het, ik ben geen wonder in het zoeken op inet, sorry...

  • stylee
  • Registratie: December 2000
  • Laatst online: 04-09-2021

stylee

blah zeg ik je

hmm probeer anders eens

#include <csystem>

  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

hier zou hij ergens tussen moeten staan ;)

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


Verwijderd

Topicstarter
Op Thursday 15 March 2001 11:21 schreef dusty het volgende:
hier zou hij ergens tussen moeten staan ;)
begrijp me niet verkeerd, ik bedank je voor het (snelle) reageren, maar die zoekacties bedoelde ik dus met het niet kunnen vinden van deze header. Ik krijg wel telkens een header te zien die system.h heet (overigens meer leuke pagina's over sum system genaamd "H", maar dat zal je altijd zien) maar vervolgens kent deze de functie: system() niet -> zwaar vervelend...

Als er iemand is die de link heeft, met de juiste header file, graag posten alsjeblieft. Heb je zelf de benodigde system.h die de functie system() wel kent, dan zou ik hem zeer graag ontvangen in m'n emailbox (er bestaat toch geen auteursrecht op??).

Vriendelijk bedankt,
PoSeidon
(poseidon@insane-hq.org)

  • wortelsoft
  • Registratie: Februari 2001
  • Laatst online: 14:17
Je zou het ook kunnen proberen met ShellExecute

daarover is de info in msdn goed te begijpen.

  • ismael86
  • Registratie: Oktober 2001
  • Laatst online: 09:40
stdlib.h invoegen en dan system("commando");
dus als je zo'n programma wil maken:
#include "stdlib.h"
void main()
{
system("cmd");
}

  • Infinitive
  • Registratie: Maart 2001
  • Laatst online: 10-08 15:15
Waarschijnlijk wil je ook toegang tot de stdout van het commando, om het resultaat van het dir-commando te lezen. Met windows kan je dit eenvoudig met CreateProcess(..) oplossen.

Met linux of iets dergelijks zou je kunnen denken aan een popen("commando", "r"). Zie daarvoor echter de man-page.

Is het alleen niet makkelijker om zelf recursief door die directories te lopen?

[ Voor 44% gewijzigd door Infinitive op 12-01-2003 00:33 ]

putStr $ map (x -> chr $ round $ 21/2 * x^3 - 92 * x^2 + 503/2 * x - 105) [1..4]


  • Korben
  • Registratie: Januari 2001
  • Laatst online: 14-11-2025

Korben

() => {};

Wortelsoft schreef op 15 March 2001 @ 12:43:
Je zou het ook kunnen proberen met ShellExecute

Daarover is de info in msdn goed te begijpen.
Ja, maar nmm returnt ShellExecute gelijk weer, en weet je dus nooit wanneer ie klaar is met het commando. Op zich geen probleem, maar je zult toch wat moeten met die uitvoer, en de meest logische optie is om 't dan te redirecten naar n bestand, en dat bestand zul je óf niet kunnen openen (in 't slechtste geval), óf je gegevens zijn onvolledig (in het beste geval). Dan zou je eerder met CreateProcess en WaitForSingleObject moeten werken.

Maar, zoals al eerder genoemd, dan is recursief de directory doorlopen toch handiger. En sneller trouwens. :)

[ Voor 10% gewijzigd door Korben op 12-01-2003 01:47 ]

.oisyn: Échte programmeurs haten PHP met een passie. Ben jij soms geen echte programmeur?


Verwijderd

ismael86 schreef op 11 January 2003 @ 23:02:
stdlib.h invoegen en dan system("commando");
dus als je zo'n programma wil maken:
#include "stdlib.h"
void main()
{
system("cmd");
}
Waarom na 2 jaar nog reageren?..

  • hobbit_be
  • Registratie: November 2002
  • Laatst online: 04-07-2025
ShellExecuteEx kun je wel degelijk wachten totdat het programma gedaan is - je krijgt dan ook zijn HInst mee...

  • GrimaceODespair
  • Registratie: December 2002
  • Laatst online: 13:01

GrimaceODespair

eens een tettenman, altijd ...

Verwijderd schreef op 12 January 2003 @ 01:55:
Waarom na 2 jaar nog reageren?..
lol... omdat er blijkbaar nog mensen zijn zoals mij die zich vervelen op zaterdagnacht en daarom maar wat losse topics gaan beantwoorden :P

Wij onderbreken deze thread voor reclame:
http://kalders.be


  • Korben
  • Registratie: Januari 2001
  • Laatst online: 14-11-2025

Korben

() => {};

hobbit_be schreef op 12 January 2003 @ 02:24:
ShellExecuteEx kun je wel degelijk wachten totdat het programma gedaan is - je krijgt dan ook zijn HInst mee...
Ja en na ShellExecuteEx zul je alsnog moeten wachten met WaitForSingleObject. hInst en hProcess zouden anders nutteloos zijn, omdat die alleen geldig zijn als het programma draait.

.oisyn: Échte programmeurs haten PHP met een passie. Ben jij soms geen echte programmeur?


Verwijderd

GrimaceODespair schreef op 12 januari 2003 @ 02:40:
[...]
lol... omdat er blijkbaar nog mensen zijn zoals mij die zich vervelen op zaterdagnacht en daarom maar wat losse topics gaan beantwoorden :P
En het stomme is, er blijven nog steeds mensen reageren ;).
Pagina: 1