Передача указателя на массив в аргументах программы - PullRequest
0 голосов
/ 31 января 2019

Предположим, у нас есть 2 программы, написанные на C, одна программа выделяет память с помощью malloc и запускает вторую программу, передавая адрес выделенной памяти и размер в качестве аргументов.

Теперь вопрос, возможно ли для второй программы привести первый аргумент к указателю и выполнить чтение / запись в эту память.Почему, почему бы и нет?

Ради простоты предположим, что Linux является основной ОС.

1 Ответ

0 голосов
/ 31 января 2019

Нет, поскольку в современных операционных системах процессы, выполняемые в пользовательском режиме, см. Виртуальная память .Один и тот же виртуальный адрес будет преобразован в другой физический адрес или местоположение файла подкачки между процессами.

К счастью, в большинстве операционных систем есть API, которые обеспечивают межпроцессное взаимодействие, поэтому вы можете исследовать эти методы. Этот вопрос кажется хорошим началом, поскольку вы утверждаете, что работаете в Linux.

...