2008-11-17 16 views
19

Tôi có một vài dự án lập trình C sở thích mà tôi muốn bắt đầu. Tôi đang tìm một thư viện mã nguồn mở có giấy phép tự do (tôi muốn có tín dụng, nhưng nhiều người có thể sử dụng). Thư viện cần phải có chuỗi tốt hơn so với thư viện chuẩn C và một số nguyên bản luồng di động.Ưu điểm và ưu điểm của GLib v APR của mỗi

Tôi đang xem xét GLibAPR. Kinh nghiệm thực tế của bạn là gì? Thư viện C cơ bản tốt hơn là gì? Có thư viện nào khác điền vào cùng một niche không?

Trả lời

12

Tôi nghĩ glib thường vượt trội so với tháng trước. glib có nhiều cơ sở dữ liệu hơn như các thư viện di động. ví dụ: bảng băm, tất cả các loại danh sách, hàng đợi, ngăn xếp, mảng động, cũng để phân tích đối số, tệp io có trình bao bọc riêng cũng như quản lý bộ nhớ có thể sửa đổi dễ dàng. Ví dụ: bạn có thể dễ dàng sử dụng glib Boehm Weisser GC đây là AFAIKT chưa bao giờ được thực hiện hoặc dễ dàng với Apache. Tôi sẽ quyết định một chút khác biệt. Nếu bạn cần một thư viện hữu ích hơn của cấu trúc dữ liệu glib là một trang bị tốt hơn. Nếu nói đến công cụ GUI hơn libapr không có gì trong khi glib có gdk/gtk + và rất nhiều thứ cho gnome nếu bạn muốn.

Tuy nhiên, nếu nói đến công cụ mạng, libapr chắc chắn có cạnh hơn glib.

Vì vậy, lời đề nghị của tôi là

  • Desktop lập trình: Sử dụng GTK + và lém lỉnh.
  • Công cụ mạng: Sử dụng apr, nhưng đảm bảo glib cũng có tất cả nội dung di động này.
7

Tôi muốn sử dụng APR. APR là tốt hơn tại tính di động Unix/Windows (là một thư viện di động chuyên dụng), GLib có truyền thống được định hướng Unix hơn. APR là một thư viện lớn hơn GLib, với rất nhiều công cụ hữu ích trong nó (bảng băm, phân tích đối số, tệp I/O, quản lý bộ nhớ, thói quen bộ nhớ dùng chung, xử lý tín hiệu, v.v.).

+1

Bằng cách này, glib bao gồm gio là I/O di động với kiến ​​trúc hướng dòng. Tôi sẽ không nghĩ rằng apr là lớn hơn glib ở tất cả. – lethalman

+2

Vậy, hôm nay là gì? Cái nào to hơn? Và câu trả lời này vẫn hợp lệ? – einpoklum

+0

Các công cụ libapr là ít hơn nhiều so với các công cụ glib/gtk. Không nghi ngờ gì về điều đó .. – Friedrich

1

Có lý do nào bạn không muốn sử dụng C++ stl không? Ngay cả khi bạn đang viết mã "kiểu c" mà không có các lớp, bạn có thể sử dụng các chuỗi C++ và cấu trúc dữ liệu.

Có nhiều lý do hợp lệ để gắn bó với C, tất nhiên. Nếu đó là trường hợp, tôi sẽ thứ hai đề nghị cho glib. APR là một lớp di động nhiều hơn so với một thư viện tiện ích.

+1

Nói về các chuỗi C++, tôi khuyên bạn nên đọc những gì Linus phải nói về điều này: http://thread.gmane.org/gmane.comp.version-control.git/57918 –

+1

Vâng, Tôi đồng ý Linus đã lựa chọn đúng để sử dụng thẳng C cho git. Sử dụng bất cứ điều gì phù hợp cho dự án của bạn và nhắm mục tiêu đối tượng nhà phát triển. Các chuỗi C++ rất đẹp, đặc biệt là đối với một lập trình viên "sở thích" như áp phích đã nêu, bởi vì bạn không phải theo dõi quyền sở hữu và tìm ra khi nào miễn phí, và tự động phát triển khiến bạn không phải lo lắng về các trường hợp strcat phức tạp. Tất nhiên, như tôi đã nói, "Có rất nhiều lý do hợp lệ để dính vào C ..." là tốt. Sử dụng những gì làm việc cho bạn. – joeld

+1

Câu hỏi cụ thể về mã hóa trong C, vì vậy C++ STL không liên quan. (Vâng, tôi biết nhận xét này là 5 năm sau sự thật. Cậu bé, những câu hỏi này và chắc chắn sẽ làm được, đúng không?) – einpoklum