之前说过, 当前路径是指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$ 

        一目了然, 无需多说。




本文转载:CSDN博客