Linux中的fork,子进程返回0,父进程返回子进程ID。子进程返回0的原因就是copy_process时任务状态段数据设置了eax为0。
昨天突然想不起return到底怎么return的了,现用简单示例Demo一下。
断在return 1出,go to disassembly。
在fun中,除了其他的栈操作外,可以看到有:mov eax 1 -> ret。
在main中使用eax。
这是单值返回的情况,使用eax传递。非单值为栈上的数据交换,mov来mov去。可以辅助理解fork的copy_process过程。