Avatar billede milpoer Nybegynder
05. august 2001 - 17:29 Der er 8 kommentarer og
1 løsning

variable = kommando ????

Hej Venner..

Hvordan sætter man en variable = outputtet fra en kommando. Fx. hvis var1 skal være = outputtet fra unix kommandoen ps aux | grep ftp

Hilsen
Tomas
Avatar billede morten2 Nybegynder
06. august 2001 - 01:39 #1
Jeg tror du skal skifte til perl hvis du vil have det så simpelt :-)
Avatar billede jelzin101 Praktikant
06. august 2001 - 01:49 #2
du skal bruge argc og argv (parametre til main).

argc er antallet af komandolinie argumenter

argv giver et array af pointere til tekststrenge som svarer til hver et argument på komandolinen.

eksempel :

#include <iostream.h>

void main(int argc, char *argv[1])

{
int i;

for (i = 0; i < argc; i++)
  cout << \"i argv[\" << i << \"] staar der: \" << argv[i] << endl;
}


- hvis man så kalder programmet :

visargv A B C

bliver output :
I arv[0] står der: (stien til programmet)
I arv[1] står der: A
I arv[2] står der: B
I arv[3] står der: C


Avatar billede morten2 Nybegynder
06. august 2001 - 01:53 #3
jelzin101: Jeg tror du misforstod spørgsmålet
Avatar billede jelzin101 Praktikant
06. august 2001 - 01:55 #4
nej fordi med arv og argc kan han jo bare bruge outputtet fra hans funktion som parameter for sit program, hvilket jeg tror er hvad han leder efter.
Avatar billede morten2 Nybegynder
06. august 2001 - 02:05 #5
Ok jeg ser hvad du mener.
Meen det betyder jo at han skal bruge et script til at generere argumenterne til c programmet. Ikke særligt fikst.

Hvis han ville gøre dette var det vel også smartere at pipe output fra kommandoen over i c programmet og så læse fra stdin.

kommando | cprog.

Anyway det er og bliver et hack efter min mening.
C programmet skal stå for det hele. Dvs udføre kommandoen og læse outputtet. Hvis det er under windows kan det gøres med CreateProcess().
Under unix kan man redirecte stdout og køre kommandoen med system()


Avatar billede jelzin101 Praktikant
06. august 2001 - 13:00 #6
hvis du laver komando | cprog er der da unix der videredelegerer outputtet. :=)
Avatar billede morten2 Nybegynder
06. august 2001 - 13:02 #7
Ja det er rigtigt - har jeg skrevet noget andet?
Avatar billede jelzin101 Praktikant
07. august 2001 - 09:46 #8
\"C programmet skal stå for det hele. Dvs udføre kommandoen og læse outputtet. \" :)
Avatar billede milpoer Nybegynder
10. august 2001 - 10:41 #9
Jeg dropper spørgsmålet..
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester