chdir在一个文件上使用execl

时间:2012-03-02 18:05:48

标签: c linux

我正在编写命令find in c,当我想在文件上使用exec时我被阻止。

如果它是一个剧目很简单,我只是使用chdir(路径),但在文件中我有错误而不是目录所以我不能使用exec

这就是我所拥有的

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

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

resultat [i]是我文件的路径

感谢您的帮助

2 个答案:

答案 0 :(得分:1)

(我不确定你要做什么,我不知道你的其余代码在做什么,所以这只是在黑暗中拍摄的......) < / p>

您是否考虑将resultat[i]作为参数传递给lsls可能会自行完成The Right Thing(TM)。即替换您提供的代码段:

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

我认为您已经完成了所有必要的工作(例如fork()),以避免您的申请在exec()电话中过早终止...

答案 1 :(得分:0)

我认为这是Linux(ls是linux只有哈哈),所以首先尝试使用opendir并查看是否获得了有效的句柄,然后尝试从中读取一个文件。如果你得到一个有效的文件名,你可以检查它是否是一个文件......

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