我試圖獲得一個函數,它將創建一個用於程序的目錄,但當該目錄已經存在時會很好地失敗。現在我在做當目錄存在時處理mkdir(C語言)
if (mkdir(path, RW)<0)
{
error out and return
}
我的問題是,MKDIR返回-1爲我所想的目錄爲「真正的錯誤」(無接觸,無空間,等..),以及已經存在的。除了目錄之外,我確實希望在每個錯誤情況下都出錯。有什麼建議?
參考: http://linux.die.net/man/3/mkdir
我試圖獲得一個函數,它將創建一個用於程序的目錄,但當該目錄已經存在時會很好地失敗。現在我在做當目錄存在時處理mkdir(C語言)
if (mkdir(path, RW)<0)
{
error out and return
}
我的問題是,MKDIR返回-1爲我所想的目錄爲「真正的錯誤」(無接觸,無空間,等..),以及已經存在的。除了目錄之外,我確實希望在每個錯誤情況下都出錯。有什麼建議?
參考: http://linux.die.net/man/3/mkdir
基本上這是我做的:
errno = 0;
int dir_result = mkdir(dir_path, 0755);
if(dir_result != 0 && errno != EEXIST){
//errors here
}
else{
//your code here
}
問候。
你應該看到'man errno'(http://man7.org/linux/man-pages/man3/errno.3.html)。在http://linux.die.net/man/3/mkdir,你可以看到返回值。如果有一個錯誤將會是-1,並且會設置'errno'。 – ViniciusArruda
您應該統計路徑並查看是否返回成功。有一點需要注意的是路徑已經存在,但它是一個文件而不是目錄。 Stat也會告訴你。 – bruceg