2011-10-06 36 views
7

Tôi nghĩ rằng tiêu đề là tự giải thích. Tôi đang làm một chương trình và tôi đã tự hỏi mình nên sử dụng cái gì và tại sao.Sự khác nhau giữa argp và getopt là gì?

+0

http://www.gnu.org/s/hello/manual/libc/Argp.html giải thích rõ ràng – lostyzd

+0

@lostyzd cập nhật liên kết: http://www.gnu.org/software/libc/manual/html_node/ Argp.html # Argp. Curiosity: argp [dựa trên getopts] (https://sourceware.org/git/?p=glibc.git;a=blob;f=argp/argp.h;h=40bf5e6b631e06a14a5416a82d1a589593858336;hb=4e42b5b8f89f0e288e68be7ad70f9525aebc2cff#l1). –

Trả lời

10

argp có thể linh hoạt/mạnh mẽ hơn, vv, nhưng getopt là một phần của tiêu chuẩn POSIX. Đó là một lựa chọn bạn đã thực hiện dựa trên việc bạn có mong đợi chương trình của bạn có thể di chuyển được hay không.

1

Không có nhiều lựa chọn mà tôi không nghĩ. Số điện thoại Argp webpage nói điều này:

Argp cung cấp các tính năng không có trong giao diện getopt phổ biến hơn được sử dụng . Các tính năng này bao gồm tự động tạo đầu ra trong các phản hồi với các tùy chọn ‘--help’ và ‘--version’, như được mô tả trong các tiêu chuẩn mã hóa GNU . Sử dụng argp làm cho nó ít có khả năng rằng các lập trình viên sẽ bỏ bê để thực hiện các tùy chọn bổ sung hoặc giữ chúng lên đến ngày.

Argp cũng cung cấp khả năng hợp nhất một số trình phân tích cú pháp tùy chọn được xác định độc lập thành một, trung gian xung đột giữa chúng và làm cho kết quả xuất hiện liền mạch. Một thư viện có thể xuất một trình phân tích cú pháp tùy chọn argp mà các chương trình người dùng có thể sử dụng kết hợp với các trình phân tích cú pháp riêng của họ, dẫn đến ít hoạt động hơn cho các chương trình người dùng. Một số chương trình chỉ có thể sử dụng các trình phân tích cú pháp đối số được xuất bởi các thư viện, do đó đạt được phân tích cú pháp tùy chọn phù hợp và hiệu quả cho các tóm tắt được triển khai bởi các thư viện.

3

Từ Argp manual:

Argp cung cấp tính năng không có sẵn trong các chi tiết thường được sử dụng giao diện getopt . Các tính năng này bao gồm tự động tạo đầu ra trong các phản hồi với các tùy chọn ‘--help’ và ‘--version’, như được mô tả trong các tiêu chuẩn mã hóa GNU . Sử dụng argp làm cho nó ít có khả năng rằng các lập trình viên sẽ bỏ bê để thực hiện các tùy chọn bổ sung hoặc giữ chúng lên đến ngày.

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