问题是这样的:
首先终端上有当前路径显示,我有个可执行程序代码是这样的:
FILE fp = fopen(filename, "rb");
if(fp == NULL) printf("cannot open\n");
编译出来的可执行程序(elf格式)比如在/home/username下面。filename中的这个文件也是在username下。
我偶然这样运行:
终端当前路径是:/home
./username/my_elf
那么就会导致文件无法打开,其实是文件路径错误了。因为终端的当前路径不是username 下。
必须把终端的当前路径cd 到 username 下再./my_elf这样文件打开才正确。