代碼中有這一句:
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爲當前絕對路徑