代码中有这一句:
int fd1=open("./a.txt",O_RDONLY);
printf("fd1=%d\n",fd1);
在clion中运行,输出的是fd1=-1
。而在vim中运行同一段代码,fd1=3
。在将代码的相对路径改为绝对路径后,即由./a.txt
改为/home/djw931017/dup/a.txt
后,在clion中输出又与vim相同。在搜索后,才发现原因:
使用CLion中ifstream、fopen打开文件,文件名正确,但是文件均无法打开
原因:
在CLion工程中,编译文件放在/home/djw931017/dup/cmake-build-debug
文件夹中,此时使用相对路径./a.txt
是在cmake-build-debug
文件夹下寻找文件。因此,需要回到代码文件同目录下的相对路径。
有两个方法可以解决:
方法一:回到父目录 ../a.txt
;
方法二:在Run->Edit Configurations中修改Working directory为当前绝对路径