2012-03-02 46 views
-2

我編程的命令查找在C和我被阻止時,我想在文件上使用exec。chdir在一個文件中使用execl

,如果它是一個劇目很簡單,我只是使用的chdir(路徑),但對文件我有錯誤不是一個目錄,所以我不能在這

使用EXEC這是我

if (chdir(resultat[i])==-1){ 
         perror("erreur changement de repertoire\n"); 
         exit(1); 
        } 

      execl("/bin/ls","ls",(char *)0); 

resultat [i]是我的文件的路徑

感謝您的幫助

+1

嘗試使用代碼示例中的英文名稱。你可能想使用'readdir'(然後可能是'stat')而不是上面的混亂。 – 2012-03-02 18:26:17

+0

你介意多關注一下你的問題嗎?你究竟想要做什麼?你爲什麼叫'ls'? – thkala 2012-03-02 18:40:15

回答

0

我想這是Linux操作系統(LS是Linux只是哈哈),所以儘量使用執行opendir第一,看看你得到一個有效的句柄,然後嘗試從中讀取一個文件。如果你得到一個有效的文件名,然後你可以檢查其文件...

http://www.gnu.org/software/libc/manual/html_node/Reading_002fClosing-Directory.html#Reading_002fClosing-Directory

+0

實際上'ls'在Linux之前已經存在了很長一段時間,是原來的AT&T Unix的一部分。現在你可以在每個操作系統上找到'ls'實現... – thkala 2012-03-02 18:38:19

1

(我不完全知道你正在嘗試做的,我不知道其他人呢你代碼在做,所以這只是在黑暗中拍攝...)

您是否考慮過將resultat[i]作爲參數傳遞給lsls可能會自己做正確的事(TM)。即替換你這個提供的片段:

execl("/bin/ls","ls", resultat[i], (char *)0); 

我假設你已經做了所有必要的工作(如fork()),以避免您的應用程序在調用exec()提前終止...