`sizeof` C関数のmanページはどこにありますか?


10

sizeofC関数のmanページがないのはなぜですか?

$ man 3 sizeof
No manual entry for sizeof in section 3

$ man sizeof
No manual entry for sizeof

他のC関数と同様のコマンドmallocを実行man 3 mallocした場合などのマニュアルページは表示されますが、では何も表示されませんsizeof


なぜCのLinuxマニュアルページを表示したいのですか?それがPOSIX関連のものでない限り、標準のドキュメントから読む方がよい
phuclv 2017年

回答:


9

sizeofは関数ではありません。それはオペレーターです:http : //en.wikipedia.org/wiki/Sizeof


1
演算子はマクロの別の言葉ですか?オペレーターは正確にはどういう意味ですか?
user1527227

1
いいえ。マクロは、プリコンパイラーによって解釈され、コンパイル可能なものに展開された(予約語、演算子、関数ではない)テキストです。演算子は関数のように見えますが、それらは言語自体の一部です。通常、関数はライブラリの一部です。詳細な説明については、en.wikipedia.org
wiki / Operator_(computer_programming

ありがとう。最後の質問:このようなオペレーター向けの公式ドキュメントはありますか?
user1527227

5
はい。C言語仕様:open-std.org/jtc1/sc22/wg14/www/docs/n1124.pdf-セクション6.5.xをチェック
drk.com.ar

2

を使用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

http://man7.org/linux/man-pages/man7/operator.7.html

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.