6

関数を呼び出す小さな C プログラムを作成していisnumber()ます。

#include <ctype.h>

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

これは、私の Mac (OS X 10.8) では問題なくコンパイルされます。ただし、CentOS 6.x サーバーにアップロードすると、コンパイルされません。さらに、OS X のmanページにはisdigit()が記載されていますisnumber()が、CentOS のmanページには記載されていません。Linuxボックスには存在しないかのようです。OS X のmanページisdigit()一般的な Unix のmanページの両方が C 標準ライブラリの一部としてリストされisdigit()ています。Linux でコンパイル フラグを追加しても、まだコンパイルされません。isnumber()libc, -lc-lc

この関数が Unix の特定のフォームに含まれていて、他のフォームには含まれていないのはなぜですか?

4

1 に答える 1

11

isnumber()リンクされたマニュアルページの HISTORY セクションに見られるように、BSDismです。

isnumber() 関数は 4.4BSD で登場しました。

そして、OS X はその遺産を示しています...

また、について話しているisdigitがミュートしている標準セクションもありisnumberます。

いずれにせよ、Linux、BSD、または OS X の man ページは、C 言語や POSIX 標準についても権威があると見なされるべきではありません。C については、C 標準仕様 (簡単に見つけることができます) を参照してください。POSIX については、OpenGroup Web サイトを参照してください。

于 2012-11-21T00:49:40.240 に答える