2010-11-18 12 views
0

J'utilise un appel système() dans un programme, c'est-à-dire dans la bibliothèque c. Pour les appels du 1er 9, il renvoie '0' (zéro) après le 10ème appel, il renvoie 256. Je ne sais pas ce que cela signifie. S'il vous plaît, aidez-moi. Voici la ligne de codeProblème avec l'appel system()

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

quelle version d'Android? –

+0

Android 2.1 (Eclair). – Kantesh

Répondre

1

Selon this man page traitant de la commande générale unix cat, un code d'erreur> 0 signifie simplement une erreur.

The following exit values shall be returned: 

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

Votre appel system() tente de concatentate deux fichiers, alors peut-être il y a un problème d'espace ou peut-être le fichier source n'existe pas.

Vous voudrez peut-être également jeter un coup d'œil à certains récents source code for Android cat (cat.c) qui donne quelques indications sur le genre de choses qui déclenchent des erreurs dans cat.

+0

le nombre d'appels au système est limité? parce que je serai cassé au 10ème appel chaque fois. – Kantesh

+0

@Kantesh Non - vous pouvez appeler system() aussi souvent que vous le souhaitez, l'effet ** de l'appeler ** (la création de nouvelles données) provoque la limitation –

+0

J'ai résolu le redémarrage de l'activité chaque fois que j'en ai fini avec l'appel système. Je pense qu'il y a une session ou quelque chose comme ça et quand redémarrer l'activité, le processus est redémarré et réinitialisé. – Kantesh