2012-03-02 56 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()提前终止...

相关问题