sizeof
C関数のmanページがないのはなぜですか?
$ man 3 sizeof
No manual entry for sizeof in section 3
$ man sizeof
No manual entry for sizeof
man 3 malloc
および同様のコマンドを実行すると、malloc
などの他のC関数のマニュアルページは表示されますが、sizeof
については何も表示されません。
sizeofは関数ではありません。それは演算子です: http://en.wikipedia.org/wiki/Sizeof
man -wK 'sizeof' | sort -u
を使用して、sizeof
を含む記事を検索できますが、これにより多くの結果が返されます。ただし、何かに関するすべての記事には、スペースで囲まれた裸語としてそのものが含まれることに注意してください。このような記事を検索しますzgrep -P '\ssizeof\s' /usr/share/man/man3/*
。しかし、セクション3で検索しても有用な情報は得られないため、セクション7で検索します
$ zgrep -P '\ssizeof\s' /usr/share/man/man7/*
/usr/share/man/man7/inotify.7.gz: len = read(fd, buf, sizeof buf);
/usr/share/man/man7/operator.7.gz:! ~ ++ \-\- + \- (type) * & sizeof right to left
ご覧のとおり、sizeof
は演算子のマニュアルページに記載されています。これは、 関数ではなく演算子 であり、上記のsizeof buf
のような識別子の括弧がなくても機能します。
OPERATOR(7) Linux Programmer's Manual OPERATOR(7)
NAME top
operator - C operator precedence and order of evaluation
DESCRIPTION top
This manual page lists C operators and their precedence in
evaluation.
Operator Associativity
() [] -> . left to right
! ~ ++ -- + - (type) * & sizeof right to left
* / % left to right
+ - left to right
<< >> left to right
< <= > >= left to right
== != left to right
& left to right
^ left to right
| left to right
&& left to right
|| left to right
?: right to left
= += -= *= /= %= <<= >>= &= ^= |= right to left
, left to right