加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

为什么isnumber()函数存在于Unix的某些发行版中而不存在于其他发

发布时间:2020-12-16 01:37:08 所属栏目:安全 来源:网络整理
导读:我正在写一个小C程序,我在其中调用isnumber()函数. #include ctype.hchar cif(isnumber(c)) { foo } 这在我的Mac上编译没有问题(OS X 10.8).但是,当我将它上传到CentOS 6.x服务器时,它将无法编译.此外,the OS X man page for isdigit() 描述了isnumber(),但C
我正在写一个小C程序,我在其中调用isnumber()函数.
#include <ctype.h>

char c
if(isnumber(c)) 
    { foo }

这在我的Mac上编译没有问题(OS X 10.8).但是,当我将它上传到CentOS 6.x服务器时,它将无法编译.此外,the OS X man page for isdigit()描述了isnumber(),但CentOS手册页没有.好像它根本就不存在于Linux机器上. isdigit()的the OS X man page for isdigit()和a general Unix man page都将isnumber()列为C标准库libc,-lc的一部分.当我将-lc添加到Linux上的编译标志时,它仍然无法编译.

为什么这个函数包含在Unix上的某些表单中,而不包含在其他表单中?

isnumber()是一个BSDism,可以在链接手册页的HISTORY部分看到:

The isnumber() function appeared in 4.4BSD.

OS X展示了它的传统……

另外还有一个STANDARDS部分讨论isdigit,但是对于isnumber却是静音.

无论如何,Linux,BSD或OS X手册页不应被视为对C语言,甚至POSIX标准的权威.对于C,请阅读C标准规范(易于查找),对于POSIX,您可以阅读OpenGroup web site.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读