我有两个可执行文件,其来源如下:
main_a.c
#include "stdio.h"
int main() {
printf("start to copy\n");
system("cp -pRf ~/main_b main_b");
system("cp -pRf ~/main_a main_a");
printf("done\n");
}
main_b.c
#include "stdio.h"
int main() {
while (1) {
printf("i'm b, i'm running\n");
}
}
gcc -o main_a main_a.c gcc -o main_b main_b.c
然后我将 main_a 和 main_b 放在〜和〜/ test 中。
我在〜/ test中cd,在这样的背景中运行main_b
./ main_b 1> / dev / null&
并在前景链接中运行main_a
./ main_a;睡100个
等一会儿,拔掉电源,然后重新启动,我得到两个大小为零且在〜/ test中没有内容的文件。
有谁知道为什么?
PS: 为确保文件已被替换,我在两小时前触摸〜/ test / main_a和〜/ test / main_b并观看,然后拔掉电源。
触摸-d" 2小时前" 〜/测试/ *