我試圖在Ubuntu中打開相對路徑,但打開第一個文件夾後 - 名爲14
- 代碼無法打開內部文件夾 - 稱爲15
:嘗試在Ubuntu中打開相對路徑不起作用
int pathsCtr; // number of folders in RelativeArray
char ** RelativeArray; // the folders in the relative path, currently:
RelativeArray[0] = "14";
RelativeArray[1] = "15";
// some code before
if (pathsCtr > 0 && flag == TRUE) // then we have a relative path
{
int j = 0;
while (j < pathsCtr) // run until the last path and open every one
{
printf("\n%s\n" , RelativeArray[j]);
dirp = opendir(RelativeArray[j]); // open all directories until the last one
if (dirp == NULL)
return -1;
j++; // proceed to the next directory
}
flag = FALSE; // turn off the flag , we'll never go near this again
}
當j == 0
這行:dirp = opendir(RelativeArray[j]);
作品和dirp
不NULL
。
但是當j == 1
那行dirp = opendir(RelativeArray[j]);
失敗,dirp
是NULL
。
我在做什麼錯?
編輯:
假設我做的malloc爲RelativeArray
上面的代碼之前。
失敗如何?只是不改變目錄或錯誤或??? – Basic
@Basic:當'j == 1'代碼返回'-1',例如'dirp'獲得'NULL'時 – ron
Chris的回答很好,但是也要注意你不想覆蓋dirp:它分配資源對於'DIR',應該用'closedir'釋放。 – pb2q