Lieber Besucher, herzlich willkommen bei: GentooForum.de.
Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert.
Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können.
Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang.
Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.
Problem mit Rückgabewerten von Programmen
Hallo,
ich bastel hier grade ein wenig rum und muss in einem Programm ein anderes ausführen und dann den Rückgabewert bekommen um zu wissen obs geklappt hat oder nicht.
Ich habe es mit Python und C++ probiert (os.system und system()), bei beiden das gleiche. Wenn das aufgerufene Programm 0 zurück gibt kommt 0 an. Gibt es 1 zurück kommt bei meinem Programm 256 an, bei 2 sind es dann 512 usw. Der Wert wird immer mit 256 multipliziert wie es scheint.
Ist das normal?
Wenn ja, warum?
Wenn nicht, warum ist es dann so bei mir?
MfG
Jacky2k
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Jacky2k« (01.03.2009, 01:44)
Errm ... kann es sein das du die man.-page von system() nicht so ganz genau gelesen hast? Besonders den Teil über den Rückgabewert?
|
Quellcode
|
1
2
3
4
|
$ cat Alice.cpp
int main(int argc, char** argv) {
return argc;
}
|
|
Quellcode
|
1
2
3
4
5
6
7
8
9
|
$ cat Bob.cpp
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char** arv) {
int nStatus = system("./Alice 2 3 4 5");
printf("I kissed alice - and she said: %d\n", WEXITSTATUS(nStatus));
return 0;
}
|
Und dann:
|
Quellcode
|
1
2
3
4
|
$ g++ -o Alice Alice.cpp
$ g++ -o Bob Bob.cpp
$ ./Bob
I kissed alice - and she said: 5
|
Passt doch.
Ne, die man habe ich mir nicht durchgelesen, sondern ein paar C(++) Referenzen, anscheinend sind die alle Mist
Habe es jetzt nicht ausprobiert aber das sollte das Problem wohl lösen. Ist das unter Windoof auch so?
MfG
Jacky2k
Ist das unter Windoof auch so?
Puuh ... kann ich dir jetzt auf die Schnelle nicht versprechen. I.A. aber schon, weil es sich hier um POSIX-Calls dreht und M$ der Meinung ist, ihre System sind POSIX-kompatibel.