之前说过, 当前路径是指pwd所在的路径, 而非二进制可执行程序所在的路径。而相对路径, 是相对于当前路径的路径。 绝对不是相对于二进制可执行程序所在的路径。 最近又碰到这个坑, 来mark一下。
#include <stdio.h>
#include <iostream>
using namespace std;
int main()
{
FILE *fp = fopen("a.txt", "r");
if(NULL == fp)
{
cout << "no" << endl;
}
else
{
cout << "yes" << endl;
fclose(fp);
}
return 0;
}
看看结果:
ubuntu@VM-0-15-ubuntu:~/taoge/cpp$ g++ test.cpp
ubuntu@VM-0-15-ubuntu:~/taoge/cpp$ ./a.out
yes
ubuntu@VM-0-15-ubuntu:~/taoge/cpp$
ubuntu@VM-0-15-ubuntu:~/taoge/cpp$
ubuntu@VM-0-15-ubuntu:~/taoge/cpp$ cd ../
ubuntu@VM-0-15-ubuntu:~/taoge$ ./cpp/a.out
no
ubuntu@VM-0-15-ubuntu:~/taoge$
一目了然, 无需多说。