微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

linux-为什么此返回失败?

/ tmp当然存在,但是当目录存在时,mkdir -p不应返回错误.

那么为什么以下操作失败?

system("/usr/bin/mkdir -p /tmp 2> /dev/null") == 0 or print("Failed");        
if ($?) {print("Failed");}

system("/usr/bin/mkdir -p /tmp 2> /dev/null");
if ($?) {print("Failed");}

从Bash我得到预期的0

# mkdir -p /tmp
# echo $?
0

解决方法:

它是/ bin / mkdir而不是/usr/bin/mkdir.我知道这一点,不仅是因为您说/usr/bin/mkdir失败,不仅是因为我查看了我的(Mac OS X)系统,还因为这样的低级基本程序经常在/ bin中,因为它们需要引导系统等

顺便说一句,您不应该使用system(mkdir)从Perl创建目录.我敢肯定,有很多方法可以更“原生”地进行操作,并具有更好的错误检查功能.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐