It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center。
已关闭8年。
我正在编写一个小的C程序,在其中调用
这样可以在Mac(OS X 10.8)上毫无问题地进行编译。但是,当我将其上传到CentOS 6.x服务器时,它将无法编译。此外,the OS X
为什么在Unix的某些形式中包含此功能,而在其他形式中却没有?
已关闭8年。
我正在编写一个小的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 man
页面没有。好像Linux盒子上根本不存在它。 man
的the OS X isdigit()
page for man
和a general Unix isdigit()
page都将isnumber()
列为C标准库libc, -lc
的一部分。当我在Linux上的编译标志中添加-lc
时,它仍然不会编译。为什么在Unix的某些形式中包含此功能,而在其他形式中却没有?
最佳答案
isnumber()
是一种BSDism,可以在链接的手册页的“历史记录”部分中看到:
OS X展示了它的传统...
还有一个STANDARDS部分,它讨论isdigit
但忽略了isnumber
。
无论如何,Linux,BSD或OS X手册页不应被视为有关C语言甚至POSIX标准的权威。对于C,请阅读C标准规范(不难查找),而对于POSIX,则可以阅读OpenGroup web site。
07-26 09:28