Использование памяти текущего процесса в C

Eclipse (SWT)

21
задан caf 13 October 2009 в 05:58
поделиться

4 ответа

Вы всегда можете просто открыть «файлы» в системе / proc , как обычный файл (используя символическую ссылку «сам», поэтому вам не нужно найдите свой собственный pid):

FILE* status = fopen( "/proc/self/status", "r" );

Конечно, теперь вам нужно проанализировать файл, чтобы выбрать нужную информацию.

27
ответ дан 29 November 2019 в 06:13
поделиться

Библиотечная функция getrusage возвращает структуру, содержащую большой объем данных о текущем процессе, включая следующие:

long   ru_ixrss;         /* integral shared memory size */
long   ru_idrss;         /* integral unshared data size */
long   ru_isrss;         /* integral unshared stack size */

Однако самая последняя версия Linux в документации говорится об этих трех полях

(unmaintained) This field is currently unused on Linux

, которые затем определяются в руководстве как:

Не все поля заполнены; необслуживаемые поля обнуляются ядром. (Не поддерживаемые поля предназначены для совместимости с другими системами и потому, что они могут однажды поддерживаться в Linux.)

См. getrusage (2)

27
ответ дан 29 November 2019 в 06:13
поделиться

да, эти - хорошо известные кванторы, используемые в математике. Другой пример - ∃, которое читается как «существует»

http: //en.wikipedia.

7
ответ дан 29 November 2019 в 06:13
поделиться

Приведенная выше структура была взята из 4.3BSD Reno. Не все поля означают - недопустимы под Linux. В linux 2.4 поддерживаются только поля ru_utime, ru_stime, ru_minflt и ru_majflt. Начиная с Linux 2.6, также поддерживаются ru_nvcsw и ru_nivcsw.

http://www.atarininja.org/index.py/tags/code

0
ответ дан 29 November 2019 в 06:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: