/ 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] 举报,一经查实,本站将立刻删除。