2009-05-20 31 views
23

Bạn có thể đề xuất một thư viện chứa dữ liệu mục đích chung cho C (pure C, không phải C++) không? Tôi chỉ cần cấu trúc cơ bản, như mảng động, bảng băm, v.v.Cần một thư viện đa năng, thuần túy C

(Lưu ý: "tốt" nghĩa là giao diện nhanh + thanh lịch).

+1

Tôi nhận ra đây là câu hỏi được nhân đôi (khá): Dòng đầu tiên trong công cụ tìm kiếm SO: http://stackoverflow.com/questions/2540/good-stl-like-library-for-c và có nhiều thứ khác , chỉ cần tìm kiếm "[c] thư viện glib" –

+3

Zifre - không, nó không phải là một giải pháp (đối với tôi). Tôi đã được progrmaming C + + trong gần 20 năm, vì vậy tôi không nghĩ rằng tôi cần bất kỳ lời khuyên về libs C++ có sẵn. Ở đây tôi đã quan tâm đến những gì đang xảy ra trong đất C thuần khiết. Và tôi rất hài lòng với câu trả lời, cảm ơn tất cả mọi người!Đặc biệt là "C giao diện và triển khai" - nó trông giống như một viên ngọc. –

+0

tại thời điểm này tôi chỉ tự hỏi tại sao comde std C không bao giờ cung cấp một tiêu chuẩn cho một thư viện phổ biến và được sử dụng rộng rãi. Glib khá được sử dụng AFAIK? C + + commitee mang STL trong tiêu chuẩn ví dụ ... Vâng, nó là một câu hỏi hay cho SO? : P –

Trả lời

14

Tôi nghĩ rằng Dave Hanson's C Interfaces and Implementations đủ điều kiện là cả nhanh và thanh lịch. Nó bao gồm nhiều loại thùng chứa khác nhau, một số xử lý chuỗi, số học đa điểm, ngoại lệ, một vài trình quản lý bộ nhớ khác nhau. Dụng cụ tốt.

Có sách, nhưng bạn không cần phải mua sách để sử dụng phần mềm.

14

Apache xách tay Runtime

http://apr.apache.org/

Bao gồm mô-đun cho các khu vực này.

  • vBulletin Định nghĩa
  • Internal Memory Allocation
  • Operations Atomic
  • động Object Xử lý
  • Chức năng cho thao tác môi trường
  • Codes Lỗi
  • Thông tin file
  • File I/O Chức năng xử lý
  • Chức năng Tên tập Matching
  • thói quen thư viện Miscellaneous
  • lệnh Luận Phân tích
  • toàn cầu Khóa thói quen
  • Bàn Hash
  • Mục đích chung Thư viện thói quen
  • mmap (Memory Map) thói quen
  • Mạng thói quen
  • Thói quen thăm dò ý kiến ​​
  • Memory Chức năng Pool
  • Portability thói quen
  • Process Khóa thói quen
  • Chức năng Random
  • nhẫn Triển khai Macro
  • Shared Memory thói quen
  • Signal Xử lý
  • thói quen Chuỗi
  • hỗ trợ chức năng
  • Internal Tháng Tư
  • Chức năng bảng và mảng
  • Điều kiện Biến thói quen
  • Chủ đề Mutex thói quen
  • Chủ đề và Process Chức năng
  • Reader/Writer Khóa thói quen
  • Time thói quen
  • người dùng và Group ID Dịch vụ
15

Glib có đủ cho nhu cầu của bạn không?:-) developer.gnome.org/glib

+2

Liên kết này đã lỗi thời. Đây là bản cập nhật: http://developer.gnome.org/glib/ – Jamer

+0

@Jamer thnx. Tôi cập nhật bài đăng với liên kết ngoài. –

5

Bạn cũng có thể muốn kiểm tra iMatix SFL, để trích dẫn trang web của họ:

Các SFL (Tiêu chuẩn Chức năng Library) từ iMatix là một di chức năng thư viện cho C++ chương trình C/. SFL là kết quả của sự phát triển trong nhiều năm, và được cung cấp dưới dạng phần mềm nguồn mở vì lợi ích của cộng đồng Internet . SFL được viết bằng ANSI C và đã được chuyển sang MS-DOS, Windows, OS/2, Linux và các hệ thống UNIX khác (IBM AIX, SunOS, HP/UX, Solaris, NetBSD, FreeBSD, SCO OpenServer,> Digital UNIX) và OpenVMS kỹ thuật số. Nó đi kèm với các nguồn hoàn chỉnh và tài liệu trong HTML.

Các SFL cung cấp khoảng 450 chức năng bao gồm các khu vực:

  • nén, mã hóa, và mã hóa;
  • Chuyển đổi và định dạng kiểu dữ liệu;
  • Ngày, giờ và lịch;
  • Truy cập danh bạ và môi trường;
  • Nhóm người dùng và quy trình;
  • Chỉ số bitmap ngược;
  • Bảng biểu tượng;
  • Tệp thông báo lỗi;
  • Tệp cấu hình;
  • Thao tác và tìm kiếm chuỗi;
  • Truy cập tệp;
  • Truy cập ổ cắm Internet;
  • Lập trình Internet (MIME, CGI);
  • Truy cập SMTP (e-mail);
  • Lập trình máy chủ (batch);
  • Theo dõi chương trình.

SFL là phần mềm miễn phí mà bạn có thể sử dụng và phân phối cho mục đích cá nhân hoặc thương mại theo SFL License Agreement.

Thêm chi tiết về chính API, xem here.

4

Sglib "là một thư viện chung cho C được lấy cảm hứng từ Thư viện Mẫu Chuẩn từ C++"

7

tôi trước đây đề nghị MemSL, nhưng trang web và công ty dường như đã tuyệt chủng. Bây giờ tôi sẽ đề xuất glib, nó bao gồm nhiều chức năng tương tự và được hỗ trợ rộng rãi và được sử dụng trong toàn bộ cộng đồng Linux.

Tôi đã sử dụng MemSL khi triển khai hạt nhân x86 và tôi nhận thấy nó là chung, đáng tin cậy và không có lỗi.

Từ mô tả: C Tổng quan về cấu trúc bộ nhớ Thư viện (MemSL)

Các cấu trúc bộ nhớ Thư viện, MemSL cho ngắn, là một thư viện các thói quen hữu ích cho phép người sử dụng hiệu quả của cấu trúc dữ liệu phức tạp trong C. MemSL chứa thói quen để quản lý:

  • Multi-Dimensional Arrays Tự động phân bổ
  • Lists Độc Liên Kết
  • Lists đúp Liên Kết
  • danh sách liên kết Thông tư
  • Cut, Copy và Paste với danh sách liên kết
  • Nhiều Positional Con trỏ tới danh sách liên kết
  • Stacks
  • Queues
  • dequeues
  • Sets
  • Túi
  • Bàn
  • Từ điển
  • Bàn Hash với riêng Chaining
  • Bàn Hash có User-Defined Paging
  • Bàn Hash với Dynamic Paging
  • Binary Search Trees
  • Threaded Binary Search Trees
  • AVL Balanced Binary Search Trees
  • AVL Cây tìm kiếm nhị phân có ren cân bằng
  • Heaps ưu tiên
  • Tìm kiếm ưu tiên đầy đủ động Queues
+0

Liên kết MemSL không hoạt động (tại thời điểm này, 2012-06-08). Liên kết này dường như có MemSL ngày nay: http://www.memorystructures.com/. Liên kết tải xuống đi tới http://sourceforge.net/projects/memsl2/ (với bản cập nhật cuối cùng 2009-11-12). – FooF

+0

Tôi đã cập nhật liên kết, nó sẽ hoạt động trở lại. –

+0

liên kết mới đã chết! – easytiger

2

Bạn có thể quan tâm đến việc xem xét qLibc.

http://en.wikipedia.org/wiki/Qlibc http://www.qdecoder.org/qlibc/

Đó là một mục đích chung hoàn chỉnh C/C++ thư viện trong đó bao gồm tất cả các loại container và thói quen thư viện nói chung.

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