2010-03-03 25 views
8

Cho hàm, hãy nói atoi, làm cách nào để tìm tệp tiêu đề tôi nên đưa vào nếu tôi muốn sử dụng hàm này? Tôi luôn bị bối rối vì vấn đề đó. Nếu để tôi xử lý chức năng như "atoi" như linux c api, tôi có thể đặt câu hỏi của mình theo cách khác như: Tài liệu cho linux c api?cách tìm tệp tiêu đề để đưa vào hàm thư viện trong linux

+2

Xem người đàn ông hoặc thông tin và apropos Nơi apropos cung cấp cho bạn phần manpage để sử dụng. –

Trả lời

12

Man pages. Nhập man atoi (hoặc, nói chung, man <function>) tại dấu nhắc lệnh của bạn. Nó sẽ cung cấp cho bạn thông tin sử dụng cũng như danh sách các tiêu đề cần đưa vào.

Trang người dùng cũng lập tài liệu các chương trình và lệnh (tìm, grep, cd, v.v.). Đôi khi bạn có thể gặp trường hợp chương trình có cùng tên với chức năng C (ví dụ: viết). Trong trường hợp đó, bạn cần hướng người đàn ông xem phần chính xác của hướng dẫn sử dụng, phần 2 cho các cuộc gọi hệ thống và phần 3 cho các chức năng thư viện. Bạn làm điều này bằng cách chèn số phần giữa "man" và tên lệnh: man 2 write. Nếu bạn không biết liệu một hàm cụ thể có phải là một cuộc gọi hệ thống hay một hàm thư viện, hãy thử cả hai.

Bạn có thể tìm hiểu thêm về các trang thủ công bằng cách nhập man man.

+2

+1 Lưu ý phụ: trên một số nền tảng, bạn có thể cần phải cài đặt các gói này (ví dụ:cho ubuntu 'manpages-posix-dev' (tiêu đề) và' manpages-dev' (chức năng)) – ChristopheD

1
Tài liệu cho linux c api?

Chắc chắn. Tài liệu có sẵn dưới dạng trang người đàn ông. Nhập man <function> vào một thiết bị đầu cuối và tận hưởng. Tệp tiêu đề nào bạn cần bao gồm thường được hiển thị ở trên cùng.

1

Nếu bạn đang sử dụng ctags và trình chỉnh sửa vim và bạn đã thiết lập ctags để quét/usr/include rồi ctrl-] trong khi bạn đang ở trên hàm bạn muốn tìm, đưa bạn đến headerfile!

0

Bạn có thể sử dụng sau đây cũng

whereis <function name> 

Nó sẽ cho tên đường dẫn cho các chức năng. Sau đó mở đường dẫn bằng cách sử dụng trình soạn thảo vim. Sau đó, sử dụng trình soạn thảo "vim", bạn có thể xem tệp tiêu đề.

Ví dụ

> whereis atoi 
    atoi: /usr/share/man/man3/atoi.3.gz 

> vim /usr/share/man/man3/atoi.3.gz 

    ---------- 
    ---------- 
    .B #include <stdlib.h> 
+1

Đây có vẻ là một cách phức tạp để làm 'man atoi'. – bfontaine

+0

Như đã nói ở trên quá phức tạp. – haziz

2

Hoặc, bạn có thể tìm kiếm hệ thống của bạn/usr/include thư mục cho lần xuất hiện của định nghĩa hàm bạn đang tìm kiếm. Điều này đặc biệt hữu ích cho các hệ thống Linux nhúng hoặc bị tước bỏ mà thiếu trang người dùng.

find /usr/include -name "*.h" -print | xargs grep "<function-you-are-looking-for>" 

Ví dụ, nếu bạn làm:

find /usr/include -name "*.h" -print | xargs grep atoi 

Bạn sẽ nhận lại một cái gì đó như thế này:

/usr/include/stdlib.h:extern int atoi (__const char *__nptr) 

Kết quả chứa cả tên tập tin header và định nghĩa giao diện.

  • Xin lưu ý rằng thư mục/usr/include của bạn có thể ở nơi khác.
+1

cũng lưu ý rằng nhiều thứ được định nghĩa trong các tệp tiêu đề riêng của hệ thống cụ thể, (và đôi khi phiên bản hạt nhân cụ thể) đượC# include'd bởi các tệp tiêu đề công khai, do đó tìm kiếm qua grep sẽ không giúp bạn trả lời chính xác. –

Các vấn đề liên quan