Tag: 虚拟地址空间

执行子进程时,OS在哪里存储argv和argc?

我很难理解操作系统如何将数据从父进程的地址空间传递到子进程的地址空间。 也就是说,在一个C程序中,argc和argv在传入main时存储在哪里? 我理解argv本质上是一个双指针。 我不理解的是操作系统在将它们加载到内核后对这些值的作用。 为子进程创建地址空间后,是否会将这些值推送到新空间的堆栈上? 我们显然不想将指针传递给另一个地址空间。 为了记录,我正在使用MIPS32架构。