如何完成同一项目/程序的多个实例的分离,这意味着哪种机制可以分离同一项目/程序的两个实例的数据?

编辑:
例子:


两次使用写入程序并使用FILE1和FILE2时。大多数操作系统如何分隔这两个实例?正如我在评论中所读,这些文件具有不同的存储块。内存块是否“获取”了文件名,例如block143可以由FILE1地址寻址,而block223可以由FILE2地址寻址?
模拟:如果我在两个不同的数据输入文件上调用一种模拟类型(相同的命令行参数)。操作系统如何分隔与不同存储块/实例的寻址有关的那些文件?


问候
力量

最佳答案

上面讨论的答案:

操作系统为每个程序或程序实例分配一定的内存块。您是否尝试过访问随机存储器?大多数情况下,您的程序会崩溃。这是由于操作系统处理。如果您访问未分配给您的内存,则操作系统会自动使您的程序崩溃(安全功能)。

programprogram uses有一个单独的内存。给予程序运行的内存(类/函数名称等所需的空间)与您在运行时分配的任何变量是分开的。

所有这些都假定您的操作系统确实支持并行执行的多个进程-非常老旧或非常有限的嵌入式系统甚至可能根本不支持此进程。您在学校工作的许多董事会都不支持这种情况,因此您必须自己编写。

当您使用单独的文件调用同一程序时,每个文件都位于其自己的内存空间中。不,它们没有这样标记。编译后不要尝试guess名称是什么。就是行不通。

为什么?

1)取决于编译器。不同的编译器使用不同的方式。

2)这不是人类可读的(除非您自己编写编译器)(如果我写错了请纠正我)

操作系统/编译器为它们提供了唯一的名称(可以是时间相关的,操作系统相关的或其他一百多种)。这些程序彼此不了解,并且在各自的空间中运行。

信用:@Hulk @Mohammad Ali Baydoun

关于c++ - 同一项目/程序的多个实例,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20331493/

10-17 02:13