Ejemplo de un proceso en Mac OS X a partir de un programa de C / C ++
-
22-09-2019 - |
Pregunta
La característica del proceso de la muestra en el monitor de la actividad es una cosa muy útil. Sin embargo, tengo que hacer lo mismo (un muestreo) de un determinado proceso de otro proceso en ejecución (C / C ++) o una línea de comandos.
¿Hay alguna manera de hacer esto? He estado buscando en Google para esto desde unos pocos días sin ninguna suerte.
Solución
Hay una utilidad de línea de comandos sample
.
Ejemplo:
sample Safari -file /dev/stdout
Se obtendrá exactamente el mismo resultado con el Monitor de actividad.
Otros consejos
Hay algunas pocas aplicaciones commandsline que son útiles: sample
y top
.
Si desea escribir su propio programa, puede utilizar la sysctl
llamada al sistema para obtener dicha información. Sin embargo, es bastante tedioso.
Yo recomendaría la instalación de procfs sistema de archivos (construido con MacFUSE). Esto crearía un nuevo "directorio" en /proc
que contiene una gran cantidad de información útil para cada aplicación (por ejemplo, uso de memoria, uso de CPU, cerraduras, archivos abiertos, zócalos, hilos, etc). El sitio ofrece una muestra de la forma en que se puede acceder. A continuación, puede script de su acceso a esos archivos.