jfm*_*cer 6 c unix linux compiler-construction macos
我正在写一个小C程序,我在其中调用该isnumber()函数.
#include <ctype.h>
char c
if(isnumber(c))
{ foo }
Run Code Online (Sandbox Code Playgroud)
这在我的Mac上编译没有问题(OS X 10.8).但是,当我将它上传到CentOS 6.x服务器时,它将无法编译.此外,OS X man页面用于isdigit()描述isnumber(),但CentOS man页面没有.好像它根本就不存在于Linux机器上.无论在OS X man的页面isdigit()和Unix系统的一个man页面为isdigit()已isnumber()列为C标准库的一部分libc, -lc.当我-lc在Linux上添加编译标志时,它仍然无法编译.
为什么这个函数包含在Unix上的某些表单中,而不包含在其他表单中?
rod*_*igo 11
isnumber()是一个BSDism,可以在链接手册页的HISTORY部分看到:
isnumber()函数出现在4.4BSD中.
OS X展示了它的传统......
还有一个STANDARDS部分谈论isdigit但静音isnumber.
无论如何,Linux,BSD或OS X手册页不应被视为对C语言,甚至POSIX标准的权威.对于C,请阅读C标准规范(易于查找),对于POSIX,您可以阅读OpenGroup网站.
| 归档时间: |
|
| 查看次数: |
1917 次 |
| 最近记录: |