Trang man cho hàm `sizeof` C ở đâu?


10

Tại sao không có trang man cho sizeofhàm C?

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

$ man sizeof
No manual entry for sizeof

Tôi thấy các trang man cho các hàm C khác như mallocnếu tôi chạy man 3 mallocvà các lệnh tương tự, nhưng không có gì cho sizeof.


Tại sao bạn muốn xem trang người dùng Linux cho một điều C? Trừ khi đó là một điều liên quan đến POSIX, đọc từ một tài liệu tiêu chuẩn sẽ tốt hơn
phuclv

Câu trả lời:


9

sizeof không phải là một chức năng. đó là một nhà điều hành: http://en.wikipedia.org/wiki/Sizeof


1
Là toán tử một từ khác cho macro? Toán tử chính xác có nghĩa là gì?
dùng1527227

1
Không. Macro là một số văn bản (không phải từ dành riêng, cũng không phải toán tử, cũng không phải hàm) được giải thích bởi trình biên dịch trước và mở rộng thành thứ có thể được biên dịch. Các toán tử trông giống như các hàm, nhưng chúng là một phần của chính ngôn ngữ. Các chức năng thường là một phần của thư viện. Để được giải thích chi tiết, hãy đọc: en.wikipedia.org/wiki/Operator_(computer_programming)
drk.com.ar

Cảm ơn. Câu hỏi cuối cùng: Có tài liệu chính thức cho các nhà khai thác như thế này không?
dùng1527227

5
Đúng. Đặc tả ngôn ngữ C: open-std.org/jtc1/sc22/wg14/www/docs/n1124.pdf - Kiểm tra phần 6.5.x
drk.com.ar

2

Bạn có thể sử dụng man -wK 'sizeof' | sort -uđể tìm các bài viết có chứa sizeof, nhưng điều đó sẽ trả về rất nhiều kết quả. Tuy nhiên, lưu ý rằng mọi bài viết về một cái gì đó sẽ có thứ đó như là một bareword được bao quanh bởi các không gian, chúng tôi sẽ tìm kiếm bài viết như thế này zgrep -P '\ssizeof\s' /usr/share/man/man3/*. Nhưng tìm kiếm trong phần 3 không cung cấp bất kỳ thông tin hữu ích nào, vì vậy tôi sẽ tìm kiếm trong phần 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

Như bạn có thể thấy, cái sizeofđược đề cập trong trang man toán tử, bởi vì nó không phải là hàm mà là toán tử và nó hoạt động ngay cả khi không có dấu ngoặc đơn cho các định danh như sizeof buftrên

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

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.