2010-11-18 13 views
0

Ich verwende einen Aufruf von System() in einem Programm, das in C-Bibliothek ist. Für die ersten 9 Aufrufe gibt es '0' (Null) nach dem 10. Aufruf gibt es 256 zurück. Ich weiß nicht, was es bedeutet. Bitte helfen Sie mir. Im Folgenden ist die CodezeileProblem mit System() Anruf

int returnValue= system("/system/bin/cat /dev/graphics/fb0 > /tmpdata/Screenshot/screenshot.bin"); 
+0

welche Version von Android? –

+0

Android 2.1 (Eclair). – Kantesh

Antwort

1

Nach this man page mit dem allgemeinen Unix cat Befehl handelt, wird ein Fehlercode> 0 bedeutet einfach ein Fehler aufgetreten ist.

The following exit values shall be returned: 

0 
    All input files were output successfully. 
>0 
    An error occurred. 

Ihr system() Anruf versucht, zwei Dateien concatentate, so vielleicht ist es ein Raum Problem oder vielleicht die Quelldatei nicht existiert.

Sie können auch einen Blick auf einige aktuelle source code for Android cat (cat.c) werfen, die einige Hinweise auf die Art von Dingen gibt, die Fehler innerhalb von cat auslösen.

+0

Anzahl der Anrufe an das System ist begrenzt? weil ich jedes Mal beim 10. Anruf gebrochen werde. – Kantesh

+0

@ Kantesh Nein - Sie können System() so oft aufrufen, wie Sie möchten, der ** Effekt des Aufrufs ** (das Erstellen neuer Daten) verursacht die Einschränkung –

+0

Ich löste es neu starten Aktivität jedes Mal wenn ich fertig bin der Systemaufruf. Ich denke, es gibt eine Sitzung oder etwas in der Art und wenn die Aktivität neu gestartet wird, wird der Prozess neu gestartet und zurückgesetzt. – Kantesh