我想验证我的电脑是否支持虚拟地址。然后我写了一个.cpp
代码。但我不知道如何同时运行它们。我使用命令
./t &
./t
但它不起作用。
我的代码在这里:
#include <cstdio>
#include <iostream>
#include <unistd.h>
using namespace std;
int svar = 0;
int main()
{
int lvar = 0;
svar +=1;
lvar +=1;
sleep(10);
printf("svar address:%x, val %d\n",&svar,svar);
printf("lvar address:%x, val %d\n",&lvar,lvar);
}
它源自操作系统原理和实践。
运行结果为t.cpp
:
svar address:bc0f9014, val 1
svar address:afef5014, val 1
lvar address:7960b824, val 1
lvar address:bf7bf314, val 1
因为地址不一样,可能不支持虚拟地址,然后我又写了一段代码测试是否真的同时运行,也就是
三次a.cpp
print("a\n");
三次b.cpp
。print("b\n");
然后运行./a & ./b
,结果是
a
a
a
b
b
b
这意味着它./a
先运行然后运行,./b
因此这两个程序不会同时运行。