Je cherche une méthode alternative à la lecture du lien symbolique/proc/PID/exe dans lequel obtenir le chemin complet d'un processus dans Android/Linux. La raison en est que sur Android,/proc/PID/exe pour tout processus autre que le vôtre ou le 'soi' semble avoir un accès restreint (permission refusée).Alternative au lien symbolique/proc/PID/exe pour récupérer un autre chemin complet de processus via PID
J'ai regardé dans les suivants aussi bien - ils sont lisibles, mais ne semblent pas fonctionner:
- /proc/PID/cmdline: contient rarement le chemin complet
- /proc/PID/stat: ne contient que le nom de l'exécutable (pas de chemin)
A défaut du code en raison de l'autorisation refusée:
#include <unistd.h>
// ...
char buf[2048];
// "/proc/1234/exe" is of course replaced with a proper PID
ssizet_t len = readlink("/proc/1234/exe", buf, sizeof(buf) - 1);
if(-1 != len) {
buf[len] = '\0';
// buf should contain full path
} else {
// this path always reached for PID's other than my own or
// /proc/self/exe
}
Il doit y avoir une méthode alternative? Sous Windows, il y a bien sûr GetModuleFileNameEx, QueryFullProcessImageName(), etc.
Cela s'applique à certaines choses dans/proc FS, mais d'autres que je peux lire. En outre, cela ne signifie pas nécessairement qu'il n'y a pas d'autre approche qui peut être utilisée. – NuSkooler