“sizeof” C 函数的手册页在哪里?

“sizeof” C 函数的手册页在哪里?

为什么没有sizeofC 函数的手册页?

$ 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

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

相关内容