我正在將一個C庫移植到OSX上,直到現在還沒有讓我頭痛。在接下來的功能:OSX上的mkdir失敗,EPERM
int createDirectory(char *directory){
int error;
error = mkdir(directory, S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH);
if(error < 0){
if(errno != EEXIST){
return errno;
}
}
return error;
}
不管是什麼directory
是,mkdir()
總是失敗EPERM
(不允許的操作)。我不確定xcode可執行文件是否被沙箱化,或者我錯過了什麼,但是我傳遞給函數的每個路徑都失敗。
我試圖從終端mkdir和創建沒有問題的文件夾,所以我不知道問題出在哪裏。此功能在Linux和Solaris中正常工作。
實施例的路徑:
"~/Library/Application\\ Support/myApp"
"~/Desktop/myApp"
第一個是一個目錄庫應該創建的一個實際的例子。
'〜' - 擴展是一個shell事物。嘗試沒有。 – Mat
獲取'$ HOME'環境變量的內容並替換'〜'。 – trojanfoe
'EPERM'?真?這很有趣,因爲這個錯誤代碼不是'mkdir()'的文檔:https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man2/mkdir.2.html我會期待'ENOENT'。 – alk