如果进程B在正在执行的进程A(通常的write()系统调用)中写入一些数据到进程A的映像中,该怎么办?它会不会导致进程A执行的错误?在Linux上写入正在执行的进程映像
我是Linux新手。据我所知,Unix历史上并没有强制强制文件锁定(就像Windows一样)。所以写作是很有可能的。
我在网上搜索没有结果。当我问我这个Linux经验丰富的同事的这个问题时,他们都回答了这个过程,A的形象完全在内存中。尽管如此,从我读过的内容中,内核可以轻松地将一些页面从内存中交换回映像文件,例如,当内存条件不足时,内存条件会受到压力。所以,在磁盘上,一些页面可能会被另一个写入器进程损坏;之后,可以将它们交换回RAM并执行。
检查有:http://stackoverflow.com/questions/4453781/what-happens-when-you-overwrite-a-memory-mapped-executable – Antoine