Bonjour,
J'espère pouvoir être aidé !
Je travaille pour un TomTom sous Linux (none) 2.6.13 assez bridé tout de même.
Je compile sous Cygwin sur un PC sous Windows 7 (et pas de volonté de changer d'OS pour les "répondeurs" à la petite semaine).
Je réalise une lib de hooking des fonctions open, close, read, write, memcpy, que je charge via LD_PRELOAD au démarrage du système.
J'essaye de lister tous les processus et j'y arrive partiellement avec un dirent de /proc et j'obtiens ainsi la liste des processus.
Je fais cette lecture à chaque appel du memcpy et j'ai monté un flag personnel (pas un sémaphore) pour éviter que le code ne soit réentrant, on ne sait jamais.
Je souhaitais lire les /proc/pid/stat via fopen et fscanf, puis par open et read, mais rien ne fonctionne, clairement j'inscris chaque action par printf et j'ai redirigé dans le lanceur les sorties standard et d'erreur vers un fichier de log.
Je sais donc précisément que ça "coince" sur le fopen ou le open, mais pourquoi ? Si vous pouvez m'aider, j'apprécierai.
J'ai essayé de faire un ipcs via system, mais cette fonction n'est pas imlémenté dans ce linux.
J'ai essayé de le refaire à la main, mais sysctl n'est pas compilable sous cygwin, il manque les déclarations MAXCOMLEN, KERN_PROC, KERN_PROC_ALL et struct kinfo_proc.
Je suis ouvert à toute suggestion et merci de donner des éléments concrets pour m'aider à avancer, j'ai trop vécu de phrases lapidaires et inutiles sur les forums.
A celui qui comprend mon problème, je le remercie d'avance de m'avoir lu et son débiteur éternel s'il sait me solutionner ce problème.
Merci.
Partager