Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (GNU/Linux, *NIX, *BSD und Co) » system???????

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
18.04.2007, 14:19 Uhr
newbeee



hallo,

eine frage zu "system"

ich hab mir mit firstrun eine zeichenkette gebastelt, die eine linux befehlszeile ergibt.
mit system(firstrun) kann ich den befehl ausführen.

char firstrun[128];
sprintf(firstrun,"%s %s %s","./wgrib",dwdname,"-V > ../data/output.txt");
system(firstrun);

geht das genauso fürdos befehlszeilen oder gibt es da einen anderen befehl?

ich weiß das es unter matlab :

dos(firstrun) heißen würde.


vielen dank und gruß

newbeee

Dieser Post wurde am 18.04.2007 um 14:19 Uhr von newbeee editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
18.04.2007, 15:39 Uhr
0xdeadbeef
Gott
(Operator)


system gibts auch unter DOS. Allerdings wär ich damit äußerst vorsichtig, in aller Regel empfiehlt es sich, wenn man denn unbedingt andere Programme aufrufen muss, das mit exec* zu tun. Mit system kriegst du arge Probleme, wenn dir zum Beispiel jemand "; rm -rf ~; ./wgrib foo.dwd" als dwdname unterschiebt. Besser so:

C++:
#define _USE_BSD
#include <fcntl.h>
#include <sys/resource.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <unistd.h>

int main(void) {
  pid_t pid = fork();

  if(pid == 0) {
    int fd = open("../data/output.txt", O_WRONLY | O_CREAT, 0644);
    dup2(fd, 1);
    close(fd);

    execl("./wgrib", dwdname, "-V", NULL);
  } else {
    int status;
    wait4(pid, &status, WNOHANG, NULL);
  }

  return 0;
}


--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (GNU/Linux, *NIX, *BSD und Co) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: