Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

lab_5 / lab5_1

.py
Скачиваний:
0
Добавлен:
12.02.2024
Размер:
1.63 Кб
Скачать
#!/usr/bin/env python3
import os
import sys

def write_file(output_file_name):
 # Открываем файл для записи
    with open(output_file_name, "w") as output_file:
        # Получаем информацию о памяти процесса с использованием mmap
        with open(f"/proc/{process_id}/maps", "r") as maps_file:
            for line in maps_file:
                output_file.write(line)
    print(f"Карта виртуальной памяти сохранена в файле: {output_file_name}")
    return 0

def generate_memory_map(process_id):
    try:
        # Открываем файл для записи карты виртуальной памяти
        output_file_name = "memory_map.txt"
        if os.path.exists(output_file_name):
            choice = input("Файл уже существует. Выберите действие (1.переименовать/2.заменить) (По умолчанию - 2): ")
            if choice == "1":
                output_file_name = input("Введите новое имя файла: ")
                write_file(output_file_name)
            elif choice == "2" or choice == "":
                write_file(output_file_name)
        else:
            write_file(output_file_name)

    except Exception as e:
        print(f"Произошла ошибка: {e}")

if __name__ == "__main__":
    if len(sys.argv) != 2:
        print("Использование: ./lab5_1.py <Идентификатор процесса>")
    else:
        process_id = sys.argv[1]
        generate_memory_map(process_id)
Соседние файлы в папке lab_5