perl – “不适当的ioctl设备”
发布时间:2020-12-15 21:26:19 所属栏目:大数据 来源:网络整理
导读:我有一个在AIX框中运行的Perl脚本。 该脚本尝试从某个目录打开一个文件,它无法读取该文件,因为文件没有读取权限,但我得到一个不同的错误,说不适当的ioctl设备。 应该不应该说类似没有文件的读取权限或类似的东西? 这不适当的ioctl设备消息是什么意思?
我有一个在AIX框中运行的Perl脚本。
该脚本尝试从某个目录打开一个文件,它无法读取该文件,因为文件没有读取权限,但我得到一个不同的错误,说不适当的ioctl设备。 应该不应该说类似没有文件的读取权限或类似的东西? 这不适当的ioctl设备消息是什么意思? 我该如何解决? 编辑:这是我发现,当我做strace。 open("/local/logs/xxx/xxxxServer.log",O_WRONLY|O_CREAT|O_APPEND|O_LARGEFILE,0666) = 4 _llseek(4,[77146],SEEK_END) = 0 ioctl(4,SNDCTL_TMR_TIMEBASE or TCGETS,0xbffc14f8) = -1 ENOTTY (Inappropriate ioctl for device) 解决方法
很可能这意味着开放没有失败。
当Perl打开一个文件时,它通过对其发出TCGETS ioctl来检查该文件是否是TTY(以便它可以回答-T $ fh filetest操作符)。如果文件是常规文件而不是tty,则ioctl将失败,并将errno设置为ENOTTY(字符串值:“设备不适当ioctl”)。正如ysth所说,在$中看到意想不到的价值的最常见的原因!正在检查它,当它是无效的 – 也就是说,除了紧接在系统调用失败之后的任何地方,因此测试操作的结果代码是至关重要的。 如果open实际上返回false为你,你发现ENOTTY在$!那么我会认为这是一个小bug(给出一个无用的价值$!),但我也很好奇它是如何发生的。代码和/或桁架输出将是漂亮的。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |