欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 运维知识 > linux >内容正文

linux

execl执行linux命令,使用execl运行Linux命令

发布时间:2024/8/23 linux 42 豆豆
生活随笔 收集整理的这篇文章主要介绍了 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命令的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。