当前位置:  技术问答>linux和unix

在execlp中使用ls,无法使用文件通配符!

    来源: 互联网  发布时间:2017-03-29

    本文导语:  程序中我用chdir,把目录跳到了 /home/123 然后执行 execlp("ls", "ls", "-rt", "1*", NULL); 结果 ls: 无法访问1*:没有那个文件或目录 但我在shell中,执行ls -rt 1* 是有结果的(1*能匹配上)。 chdir也是成功的,因为我 exec...

程序中我用chdir,把目录跳到了 /home/123
然后执行 execlp("ls", "ls", "-rt", "1*", NULL);
结果 ls: 无法访问1*:没有那个文件或目录

但我在shell中,执行ls -rt 1* 是有结果的(1*能匹配上)。
chdir也是成功的,因为我 execlp("ls", "ls", "-rt", NULL);时,能得到正确的结果。


|
1* 这种通配符的扩展是有sh来进行的。调用函数execlp时不会进行这种扩展。
用system("ls -rt 1*")会启动sh然后运行ls.

|


可以调用shell,例如使用ksh
execlp("/usr/bin/ksh", "/usr/bin/ksh", "-c", "ls A*");

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • execlp
  • 非常急!!快帮帮忙!关于EXECLP的应用!!!
  • 关于execlp的问题
  • 请教,execlp中的“重定向”
  • 请教大家一个关于execlp()的问题!
  • 为什么执行完execlp函数后程序就退出了,怎样才能让程序继续执行后面的代码


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,