0

我有以下命令$(perl -e 'use POSIX;print strftime "%d-%^b-%Y",localtime time-86400;')适用于 Red Hat Linux 机器,但不适用于 Sun Solaris 9 机器。

问题 1:从我在这里读到的内容,'^' 是由 glibc 提供的......这是正确的吗?

问题 2:我如何找出它在 Solaris 机器上不起作用的原因?(最终,我该如何让它发挥作用?)

4

1 回答 1

6

Solaris 不是Linux,虽然它是 Unix :-),系统调用在不同系统上的行为不同,这就是为什么你会在 C 程序中看到很多 #ifdef。您可以在 RedHat 和 Solaris 上编译一些时间函数的 C 示例并查看差异(将 %B 转换为 %^B,您将看到它不会以大写形式打印)。最好的解决方案是使用 Perl 的uc函数。

于 2013-04-08T21:06:21.203 回答