Avatar billede nicklasw Nybegynder
11. februar 2009 - 12:13 Der er 5 kommentarer og
1 løsning

IO til et andet program

Hej eksperter.
Undskyld de mange spørgsmål, men har gabt over et lidt stort hobby projekt.

Jeg laver mit program til linux. Og jeg vil gerne høre hvordan man kalder et andet program fra et andet program hvorefter man så kan skrive til den og læse output'et fra den.
altså en form for tunnel fra det ene program til det andet.

Mvh.
Nicklas
Avatar billede arne_v Ekspert
11. februar 2009 - 13:41 #1
popen
Avatar billede arne_v Ekspert
11. februar 2009 - 13:42 #2
Simpelt eksempel:

#include <stdio.h>
#include <stdlib.h>

int main()
{
  char *cmd = "cmd /c dir *.c";
  char buf[1000];
  FILE *ptr;
  if ((ptr = popen(cmd, "r")) != NULL)
  {
      while (fgets(buf, sizeof(buf), ptr) != NULL)
      {
            printf("%s", buf);
      }
      pclose(ptr);
  }
  return 0;
}


Og popen virker også på Linux !
Avatar billede nicklasw Nybegynder
12. februar 2009 - 11:13 #3
Okay tusind tak.
Jeg koder det i c++ så kan jeg bare bytte FILE ud med fstream?
Det andet argument i popen "r" kan jeg bytte det ud med "rw" hvis jeg både skal læse og skrive til programmet?
Avatar billede arne_v Ekspert
12. februar 2009 - 15:10 #4
Nej. Men du kan godt bruge FILE i C++.

Ja. Tror jeg ihvertfald.
Avatar billede nicklasw Nybegynder
12. februar 2009 - 15:21 #5
Okay tak for svarene. Har ikke prøvet det af i nu, men nu har jeg ihvertfald noget at lege med.

Bare lig et svar.
Avatar billede arne_v Ekspert
12. februar 2009 - 15:26 #6
kommer her
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