execl执行linux命令,使用execl运行Linux命令
我需要通過編寫C語言程序列出當前目錄中具有644權限的所有文件.
我不能使用system()并且必須使用execl()才能使用系統調用.
這是我在代碼中使用的一行:
execl("/usr/bin/find", "find . -maxdepth 1 -perm 644", (char *)NULL);
問題是代碼正在搜索整個磁盤而不是當前目錄.
你能幫我解決一下嗎?
...
case 4:
int status;
switch (fork()){
case -1: quit ("fork",1);
case 0:
execl("/usr/bin/find","find","." ,"-maxdepth" ,"1","-perm", "644",(char *)NULL) ;
exit (200);
default:
wait(&status);
exit(0);
}
}
解決方法:
分開論點:
execl("/usr/bin/find", "find", ".", "-maxdepth", "1", "-perm", "644", (char *)NULL);
你的調用等同于調用沒有參數的find程序(和一個非常有趣的argv [0]).
標簽:c-3,linux,unix,exec
來源: https://codeday.me/bug/20190826/1725365.html
總結
以上是生活随笔為你收集整理的execl执行linux命令,使用execl运行Linux命令的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux中在工作空间编译cpp,lin
- 下一篇: tabulate matlab,matl