为什么没有sizeof
C 函数的手册页?
$ man 3 sizeof
No manual entry for sizeof in section 3
$ man sizeof
No manual entry for sizeof
我确实看到了其他 C 函数的手册页,例如malloc
我运行man 3 malloc
和类似的命令,但没有看到任何关于的手册页sizeof
。
答案1
大小不是一个函数。它是一个运算符:http://en.wikipedia.org/wiki/Sizeof
答案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