我的老师问我使用execlp来做一个程序,
scp * mylogin@mycomputer:/home/mylogin/myfolder
我试过了 :
execlp("scp","scp","*","mylogin@mycomputer:/home/mylogin/myfolder",0)
我发现它不起作用,因为它是将*转换为文件名的shell。
有没有办法,我可以做到这一点,我真的不知道我可以如何将所有的文件名称进入execlp调用?
让OpenCL在Optimus技术的Linux笔记本电脑上工作
如何卸载未完成的COM对象/库完成重新启动后?
如何获取驱动器号和装载path – MSDN
增加IP地址
MinGW Windows.h不编译
我很抱歉,如果我不清楚,这只是很难解释:(但我真的寻找任何提示如何“*”的作品,这将是伟大的:)
静态指针dynamic分配数组
水平合并cv :: Mat
Linux ELF 32位加载
你可以使用glob(3)来执行glob匹配。 然后分配一个数组,在其中放置匹配的文件名和其他参数到scp。 在这种情况下,您不会希望使用execlp()而是使用execvp() ,因为您现在有一个数组而不是参数列表。
但是,赋值本身是相当愚蠢的:如果你想要shell通配符扩展,使用system() ,它在shell中执行给定的命令(有其优点和缺点)。
据我所知,C标准库不提供扫描目录的功能。 在您的平台上可用的dirent.h中,有opendir()函数及其关联。 你可以研究一下。
其他答案提到glob.h中的glob() ,但也是平台相关的。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。