在程序参数中传递指向数组的指针
Passing pointer to an array in program args
假设我们有 2 个用 C 编写的程序,一个程序使用 malloc 分配内存并启动第二个程序,将分配的内存地址和大小作为参数传递。
现在的问题是,第二个程序是否可以将第一个参数转换为指针并将 read/write 转换为该内存。为什么,为什么不呢?
为了简单起见,假设 Linux 作为基础 OS。
否,因为在现代操作系统进程中 运行 在用户模式下参见 Virtual Memory。相同的虚拟地址将在进程之间转换为不同的物理地址或页面文件位置。
幸运的是,大多数操作系统都有允许进程间通信的 API,因此您可以研究这些方法。 This question 似乎是一个不错的起点,因为您声称正在研究 Linux。
假设我们有 2 个用 C 编写的程序,一个程序使用 malloc 分配内存并启动第二个程序,将分配的内存地址和大小作为参数传递。
现在的问题是,第二个程序是否可以将第一个参数转换为指针并将 read/write 转换为该内存。为什么,为什么不呢?
为了简单起见,假设 Linux 作为基础 OS。
否,因为在现代操作系统进程中 运行 在用户模式下参见 Virtual Memory。相同的虚拟地址将在进程之间转换为不同的物理地址或页面文件位置。
幸运的是,大多数操作系统都有允许进程间通信的 API,因此您可以研究这些方法。 This question 似乎是一个不错的起点,因为您声称正在研究 Linux。