2009-12-31 13 views
7

La funzione Processo di esempio in Activity Monitor è piuttosto utile. Tuttavia, ho bisogno di fare la stessa cosa (prendere campioni) di un certo processo da un altro processo in esecuzione (C/C++) o da una riga di comando.Esempio di un processo su Mac OS X da un programma C/C++

C'è un modo per farlo? Sono stato su Google per questo da alcuni giorni senza fortuna.

risposta

12

È disponibile l'utilità della riga di comando sample.

Esempio:

sample Safari -file /dev/stdout 

Si otterrà esattamente lo stesso output con Activity Monitor.

+0

Grazie lamamac, esattamente quello che stavo cercando. – Chirag

+0

Tre evviva per lo straripamento !! Oh sì, e a @iamamac. – macetw

2

Ci sono alcune poche applicazioni di comandi che risultano utili: sample e top.

Se si desidera scrivere il proprio programma, è possibile utilizzare lo sysctl system call per ottenere tali informazioni. Tuttavia, è piuttosto noioso.

Si consiglia di installare procfs file system (creato con MacFUSE). Ciò creerebbe una nuova "directory" a /proc che contiene molte informazioni utili per ogni applicazione (ad esempio utilizzo della memoria, uso della CPU, blocchi, file aperti, socket, thread, ecc.). Il sito fornisce un esempio di come è possibile accedervi. Quindi puoi semplicemente scriptare il tuo accesso a quei file.

+0

Grazie per la risposta. Darò un'occhiata alle altre opzioni che hai dato. – Chirag