【问题标题】:Problem with the POSIX modulePOSIX 模块的问题
【发布时间】:2011-02-27 08:32:57
【问题描述】:

在将我的 mod_perl 站点从 Linux 主机移动到 FreeBSD 后,日志文件中出现以下错误:

您的供应商尚未定义 POSIX 宏 SIGRTMIN,用于 ../../lib/POSIX.pm(自动拆分为 ../../lib/auto/POSIX/SigRt/_init.al)第 993 行\n

脚本只是导入 POSIX 并利用一些功能(ceil 等)

我该如何解决这个问题?

【问题讨论】:

    标签: perl posix freebsd mod-perl


    【解决方案1】:

    在模块中只尝试importing 几个(或没有)例程:

    use POSIX ();
    my $n = POSIX::ceil(1.1);
    

    这曾经在同样的情况下对我有用,我不知道为什么:)

    【讨论】:

      【解决方案2】:

      FreeBSD大部分POSIX-compliant。例如,它的doesn't define SIGRTMINSIGRTMAX 在其signal.h 中。我们在POSIX's documentation 中收到警告:

      此外,一些邪恶的供应商会 声称符合 1003.1,但实际上 不是这样:他们不会通过 PCTS(POSIX 合规性测试套件)。 例如,一个供应商可能没有定义 EDEADLK,或 errno 的语义 open(2) 设置的值可能不是 非常正确。 Perl 不会尝试 验证 POSIX 合规性。这意味着 你目前可以成功地说 “使用 POSIX”,然后在您的 您发现您的供应商拥有的程序 一直松懈,没有可用的 ICANON 毕竟宏。这可能是 被认为是一个错误。

      eugene y 的解决方案可能会起作用,因为它会阻止自动导出到您的命名空间,但请确保在对 ceil 等的任何调用前加上 POSIX::

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-12-13
        • 2013-09-04
        • 1970-01-01
        • 2013-04-09
        • 1970-01-01
        • 2018-02-18
        • 1970-01-01
        相关资源
        最近更新 更多