C

C is a general-purpose high-level programming language suitable for low-level programming, in other words: a system programming language.

388 resources37 categoriesView Original

Build Systems(15 items)

A

aimake

Build tool designed to avoid complex configurations. `GNU GPL3 or later`

Build Systems
A

Autoconf

Extensible package of M4 macros that produce shell scripts to automatically configure software source code packages. Part of the Autotools. `GNU GPL3 or later`

Build Systems
A

Automake

Tool for automatically generating `Makefile.in` files compliant with the GNU Coding Standards. Requires the use of Autoconf. Part of the Autotools. `GNU GPL3 or later`

Build Systems
B

Bazel

Build system for various operating systems and targets. `Apache 2.0`

Build Systems
B

Buck

Build system created and used by Facebook. `Apache 2.0`

Build Systems
C

CMake

Tools for cross-platform building, testing, and packaging. `3-clause BSD`

Build Systems
J

Jam

Build system, designed to be easier than make. Understands C build rules implicitly. `Jam License`

Build Systems
L

Libtool

Generic library support script. Part of the Autotools. `GNU GPL3 or later`

Build Systems
M

Meson

Extremely fast, user-friendly build system. Based on Ninja. `Apache 2.0`

Build Systems
N

Ninja

Small, simple build system with a focus on speed. `Apache 2.0`

Build Systems
P

Premake

Build script generator for toolsets like Visual Studio, Xcode, or GNU Make. `3-clause BSD`

Build Systems
Q

Qbs

Modern build tool for software projects. `LGPL3`

Build Systems
Q

qmake

Build system included with the Qt Framework. `GNU GPL3 with Qt Exception`

Build Systems
S

SCons

An easier, more reliable and faster way to build software. `MIT`

Build Systems
X

xmake

Cross-platform build utility based on lua. `Apache 2.0`

Build Systems

Learning, Reference and Tutorials(50 items)

1

10 C99 tricks

Learning, Reference and Tutorials
2

21st Century C

Very good *second* programming book on C.

Learning, Reference and Tutorials
8

8 gdb tricks you should know

Learning, Reference and Tutorials
A

Advanced metaprogramming in C

Learning, Reference and Tutorials
B

Bit twiddling hacks

Learning, Reference and Tutorials
B

Building C Projects

Learning, Reference and Tutorials
C

C FAQ - comp.lang.c Frequently Asked Questions

Learning, Reference and Tutorials
C

C Pocket Reference

Concise reference book for C99.

Learning, Reference and Tutorials
C

C Primer Plus 6E

Complete tutorial on programming in C11.

Learning, Reference and Tutorials
C

C Programming Language Certified Associate prep...

Learning, Reference and Tutorials
C

C Programming Wikibook

Learning, Reference and Tutorials
C

C Programming: A Modern Approach

Excellent book to learn the basics of C.

Learning, Reference and Tutorials
C

C: A Reference Manual 5E

Full reference book for C99.

Learning, Reference and Tutorials
C

Comparison of C/POSIX standard library implemen...

Learning, Reference and Tutorials
D

Diving into concurrency: trying out mutexes and...

Learning, Reference and Tutorials
D

Draft ANSI C (C89) standard

Learning, Reference and Tutorials
D

Draft ANSI C Rationale

Learning, Reference and Tutorials
D

Draft C11 standard

Learning, Reference and Tutorials
D

Draft C99 Rationale

Learning, Reference and Tutorials
D

Draft C99 standard

Learning, Reference and Tutorials
E

Expert C Programming: Deep C Secrets

Interesting, in-depth and *entertaining* look at the innards of C.

Learning, Reference and Tutorials
G

GNU C Reference Manual

Learning, Reference and Tutorials
H

Head First C

'Head-first' style book for learning C.

Learning, Reference and Tutorials
I

I do not know C

Learning, Reference and Tutorials
I

Implementing smart pointers for the C programmi...

Learning, Reference and Tutorials
I

Inline functions in C

Learning, Reference and Tutorials
I

Introduction to 'fun' C

Learning, Reference and Tutorials
I

Introduction to OpenMP

(video)

Learning, Reference and Tutorials
L

Learning C with GDB

Learning, Reference and Tutorials
M

memcpy vs memmove

Learning, Reference and Tutorials
M

Metaprogramming custom control structures in C

Learning, Reference and Tutorials
M

MPI tutorial

Learning, Reference and Tutorials
O

OpenMP tutorial

(for the OpenMP3 standard)

Learning, Reference and Tutorials
P

POSIX Threads Programming tutorial

(a little dated, but most of it is still valid and useful)

Learning, Reference and Tutorials
Q

Quick tutorial on implementing and debugging ma...

Learning, Reference and Tutorials
R

Robert Pike's notes on programming in C

Learning, Reference and Tutorials
S

SEI CERT C Coding Standard

Learning, Reference and Tutorials
S

Some dark corners of C

Learning, Reference and Tutorials
S

Some unknown features or tricks in C language

Learning, Reference and Tutorials
T

Templating in C

Learning, Reference and Tutorials
T

The C Programming Language 2E

The original book on C, by its creators.

Learning, Reference and Tutorials
T

The GNU C Programming Tutorial

(online PDF)

Learning, Reference and Tutorials
T

The lost art of C structure packing

Learning, Reference and Tutorials
T

Tutorial on pointers

Learning, Reference and Tutorials
U

Understanding and Using C Pointers

In-depth resource on pointers in C.

Learning, Reference and Tutorials
W

What a C programmer should know about memory

Learning, Reference and Tutorials
W

What every C programmer should know about undef...

Learning, Reference and Tutorials
W

What every programmer should know about memory

Learning, Reference and Tutorials
W

Writing efficient C and C code optimization

Learning, Reference and Tutorials
Z

ZeroMQ

Book for using ZeroMQ with C.

Learning, Reference and Tutorials

Networking and Internet(38 items)

A

asnlc

Compiler of ASN.1 specifications into C source code. `FreeBSD`

Networking and Internet
B

balde

Microframework for C based on GLib. `GNU LGPLv2.1`

Networking and Internet
C

czmq

High-level binding for ZeroMQ. `MPL2.0`

Networking and Internet
D

duda

Duda I/O is an event-driven and high performant web services framework written in C. `Apache 2.0`

Networking and Internet
D

dyad

Asynchronous networking library. `MIT`

Networking and Internet
G

GNU adns

Advanced, easy-to-use, asynch-capable DNS client library and utilities. `GNU GPL3 or later`

Networking and Internet
G

GNU SASL

Implementation of the Simple Authentication and Security Layer and a few common SASL mechanism. `GNU GPL3 or later`

Networking and Internet
G

GnuTLS

Secure communication library, implementing SSL, TLS and DTLS. `GNU LGPL2.1 or later`

Networking and Internet
G

gumbo-parser

HTML5 parsing library in C99. `Apache 2.0`

Networking and Internet
H

h2o

Optimized HTTP/1, HTTP/2 high performance server/library. `MIT`

Networking and Internet
H

http-parser

HTTP request/response parser. `Expat`

Networking and Internet
K

klone

KLone is a fully-featured, multiplatform, web application development framework.

Networking and Internet
K

kore

Easy to use, scalable and secure web application framework for writing web APIs in C.

Networking and Internet
L

ldns

Library to simplify DNS programming. `3-clause BSD`

Networking and Internet
L

libcurl

Client-side URL transfer library, supporting a wide range of formats. `curl license`

Networking and Internet
L

LibEtPan

Mail library providing an efficient network for IMAP, SMTP, POP and NNTP. `3-clause BSD`

Networking and Internet
L

libev

Yet another event loop. `FreeBSD`

Networking and Internet
L

libevent

Event loop replacement for network servers. `3-clause BSD`

Networking and Internet
L

libgss

Generic Security Service. `GNU GPL3 or later`

Networking and Internet
L

libhttpd

Library to add basic web server capabilities to an application or embedded device. `GNU GPL2`

Networking and Internet
L

libidn

Implementation of the Stringprep, Punycode and IDNA specifications. `GNU GPL3 or later`

Networking and Internet
L

libmicrohttpd

Small C library that makes it easy to run an HTTP server as part of another application. `GNU LGPL2.1 or later`

Networking and Internet
L

librg

Library for building simple and elegant cross-platform mmo client-server solutions. `Apache 2.0`

Networking and Internet
L

libsagui

Sagui is a cross-platform C library which helps to develop web servers or frameworks. `GNU LGPL3`

Networking and Internet
L

libuv

Cross-platform asynchronous I/O. `Expat`

Networking and Internet
L

libvldmail

Your friendly e-mail address validation library. `WTFPLv2`

Networking and Internet
L

lwan

Experimental, scalable, high-performance HTTP server. `GNU GPL2.1`

Networking and Internet
M

mongoose

Embedded web server for C. `GNU GPL2.1`

Networking and Internet
M

MQTT-C

Portable MQTT C client for embedded systems and PCs alike. `MIT`

Networking and Internet
N

nanomsg

C-based implementation of ZeroMQ. `Expat`

Networking and Internet
O

onion

C library to create simple HTTP servers and Web Applications. `Apache 2.0`

Networking and Internet
O

OpenSSL

Implementation of the SSL and TLS protocols, and also includes a cryptography library. `Dual Licensed under the OpenSSL License and the SSLeay License`

Networking and Internet
O

oSip

SIP implementation in C without additional dependencies. `GNU LGPLv2.1 or later`

Networking and Internet
P

pig

Linux packet crafting tool. `GPL2`

Networking and Internet
S

s2n

C99 implementation of the TLS/SSL protocols, designed to be simple, fast and with security as a priority. `Apache 2.0`

Networking and Internet
S

socket99

C99 wrapper for the BSD sockets API. `ISC`

Networking and Internet
T

Tox

Communication platform, designed to be a Skype-killer. `GNU GPL3`

Networking and Internet
T

twitc

Mini C library for interacting with the Twitter OAuth API. `Expat`

Networking and Internet

Numerical(21 items)

A

apophenia

Library for statistical and scientific computing. `GNU GPL2.1`

Numerical
A

ATLAS

Automatically Tuned Linear Algebra Software. `3-clause BSD`

Numerical
B

BLAS

Basic Linear Algebra Subprograms; a set of routines that provide vector and matrix operations. `BLAS license`

Numerical
C

CDFLIB

Library with routines to evaluate cumulative density functions fo a variety of standard probability distributions. Also can compute one parameter of the CDF given the others. (No license given)

Numerical
C

cmathl

Pure-C Math library with a great variety of mathematical functions and CMake build support. Seeks to be close to C89/C90 compliant for portability. `MIT`

Numerical
C

Cuba

Library for multidimensional numerical integration. `GNU LGPLv3`

Numerical
F

FFTW

The Fastest Fourier Transform in the West; a highly-optimized fast Fourier transform routine. `GNU GPL2.1 or later`

Numerical
F

FLINT

Fast Library for Number Theory; a library supporting arithmetic with numbers, polynomials, power series and matrices, among others. `GNU GPL2.1 or later`

Numerical
G

GLPK

GNU Linear Programming Kit; a package designed for solving large-scale linear programming, mixed integer programming and other related problems. `GNU GPL3 or later`

Numerical
G

GMP

GNU Multple Precision Arithmetic Library; a library for arbitrary-precision arithmetic. `GNU GPL2.1` and `GNU LGPLv3`

Numerical
G

GNU MPC

Library for complex number arithmetic. `GNU LGPL3 or later`

Numerical
G

GNU MPFR

Library for arbitrary-precision floating-point arithmetic. `GNU LGPL3 or later` or `GNU LGPL2.1 or later (until version 2.4.x)`

Numerical
G

GNU MPRIA

Portable mathematics library for multi-precision rational interval arithmetic. `GNU GPL3 or later`

Numerical
G

GSL

The GNU Scientific Library; a sophisticated numerical library. `GNU GPL3`

Numerical
I

igraph

Library for creating and manipulating large graphs. `GNU GPL2`

Numerical
K

KISS FFT

Very simple fast Fourier transform library. `3-clause BSD`

Numerical
L

LAPACKE

C interface to LAPACK. `3-clause BSD`

Numerical
P

PARI/GP

Computer algebra system for number theory; includes a compiler to C. `GNU GPL2.1 or later`

Numerical
P

PETSc

Suite of data structures and routines for scalable parallel solution of scientific applications modelled by partial differential equations. `FreeBSD`

Numerical
P

PROB

Library that handles various discrete and continuous probability density functions. `GNU LGPL3`

Numerical
Y

Yeppp!

Very fast, SIMD-optimized mathematical library. `3-clause BSD`

Numerical

Tools(23 items)

A

address-sanitizer

Fast memory error detector. `Apache 2.0`

Tools
A

Artistic Style

Fast and small automatic source code formatter that supports C. `GNU LGPL3`

Tools
B

biicode

Modern dependency manager for C. `Expat`

Tools
C

c

Compile and execute C "scripts" in one go on the command line. Also has shebang support. `Expat`

Tools
C

c99sh

Run C files using hash-bang. `FreeBSD`

Tools
C

CBMC

C Bounded Model Checker; a tool for verification of array bounds, pointer safety and user-specified assertions. `Original BSD`

Tools
C

cdecl

Online service to translate C declarations into English and vice versa. `Public Domain`

Tools
C

cinclude2dot

Graphs include dependencies in a C project using Graphviz. `Any GNU GPL version (due to underspecification in the file)`

Tools
C

Complexity

Tool for measuring the complexity of C source code. `GNU GPL3 or later`

Tools
C

CScout

Source code analyzer and refactoring browser for collections of C programs. `GNU GPL3`

Tools
D

DDD

Graphical front-end for a range of command-line debuggers. `GNU GPL3 or later`

Tools
G

GDB

The GNU Project debugger; a debugger for C. `GNU GPL3 or later`

Tools
G

Glade

RAD tool to enable quick development of GTK+ GUIs. `GNU GPL2.1`

Tools
G

GMSL

GNU Make Standard Library; a collection of additional functionality for GNU Make. `3-clause BSD`

Tools
G

GNU Global

Source code tagging tool which works with C. `GNU GPL3`

Tools
G

gprof

Performance analysis tool. Part of GNU binutils. `GNU GPL3 or later`

Tools
H

Highlight

Converts source code to formatted text with nice highlighting. `GNU GPL3`

Tools
I

include-what-you-use

Helps find unecessary inclusions and make suggestions for fixing them. Based on LLVM/Clang (and only works with it). `NCSA`

Tools
I

indent

Formats C source code automatically to make it easier to read. Also converts from one style of source to another. `GNU GPLv3 or later`

Tools
R

rr

Debugger that records non-deterministic executions to allow for deterministic debugging. `FreeBSD`

Tools
T

tup

Very fast, file-based, cross-platform build system. `GNU GPL2.1`

Tools
U

unifdef

Removes #ifdef and #if directives with their delimited text without touching any other part of the file. `3-clause BSD` and `FreeBSD`

Tools
V

Valgrind

Range of dynamic analysis tools, including a leak checker. `GNU GPL2.1`

Tools

Utilities(40 items)

A

alsa-lib

Userspace library to interact with ALSA. `LGPL2.1`

Utilities
A

ApeTagLibs

C library for working with APEv2 tags. `Expat`

Utilities
B

bfd

Library for manipulating binary object files. Part of GNU binutils. `GNU GPL3 or later`

Utilities
C

Capstone

Dissasembly/disassembler framework. `BSD 3-clause`

Utilities
C

CException

C implementation of exceptions. `Expat`

Utilities
C

cf4ocl

The C Framework for OpenCL; a cross-platform object-oriented framework for developing and benchmarking OpenCL projects. `GNU LGPL3 (library)` or `GNU GPL3 (project code)`

Utilities
C

CommonMark

C implementation of the CommonMark spec. `Various Licenses`

Utilities
C

cpu_features

A cross platform C99 library to get cpu features at runtime. `Apache 2.0`

Utilities
D

docopt.c

C implementation of a command-line option parser. `Expat`

Utilities
D

dyncall

Another foreign function interface library. `Expat`

Utilities
F

FANN

Fast Artifical Neural Network library; an implementation of neural networks. `GNU GPL2.1`

Utilities
F

Firm

C library that provides a graph-based intermediate representation, optimizations and assembly code generation suitable for use in compilers. Comes with an example C front-end under the same license. `GNU LGPLv2.1`

Utilities
G

Genann

Simple neural network library in C. `Zlib`

Utilities
G

gjrand

Library of random-number generation routines. `GNU GPL2.1` or `GNU GPLv3`

Utilities
G

GNU FreeIPMI

In-band and out-of-band IPMI implementation. `GNU GPL3`

Utilities
G

GNU gperf

Perfect hash function generator, given a list of strings. Outputs C code. `GNU GPL3 or later`

Utilities
G

GNU Libffcall

Collection of libraries for building foreign function interfaces. `GNU GPL3 or later`

Utilities
G

gperftools

Collection of utilities for measuring and improving performance. `3-clause BSD`

Utilities
H

huffandpuff

Minimal Huffman encoder and decoder. `Public Domain`

Utilities
K

kdtree

Simple library for working with KD-trees. `3-clause BSD`

Utilities
K

Kitsune

Efficient, general-purpose framework for dynamic software updating. `GNU LGPL3 or later`

Utilities
L

libavl

Library containing a range of self-balancing binary trees. `GNU GPL3 or later`

Utilities
L

libbson

BSON utility library. `Apache 2.0`

Utilities
L

libCello

Library introducing higher-level programming to C. `3-clause BSD`

Utilities
L

libelf

ELF object file access library in C. `GNU GPL2.1`

Utilities
L

libffi

Portable foreign-function interface library. `Expat`

Utilities
L

libgit2

Pure C implementation of Git. `GNU GPL2 only, with a linking exception`

Utilities
L

libimobiledevice

Cross-platform protocol library to communicate with iThings. `GNU LGPLv2.1 or later (library)` or `GNU GPL2.1 or later (tools)`

Utilities
L

libnfc

Platform-independent Near-Field Communication library. `GNU LGPL3`

Utilities
L

libPhenom

Deprecated, here for archival purposes. Eventing framework for building high-scalability and high-performance systems. `Apache 2.0`

Utilities
L

libusb

Generic access to USB devices. `LGPL2.1`

Utilities
M

mcpp

Portable C preprocessor. `2-clause BSD`

Utilities
N

ncurses

Coloured terminal UI library. `GNU GPL3 or later`

Utilities
N

nope.c

C-language-based, ultra-light software platform for scalable server-side and networking applications (think node.js for C programmers). `GNU GPL2.1`

Utilities
P

pbc

Protocol buffers library. `Expat`

Utilities
P

pblog

Small, low overhead, structured logging library intended for logging formware events.`Apache 2.0`

Utilities
R

rabbitmq-c

Client library for RabbitMQ. `Expat`

Utilities
R

Ragel

DSL for state machines that compiles to C. `GNU GPL2.1`

Utilities
T

Tinyexpr

Tiny recursive-descent parser, compiler and evaluation engine for simple mathematical expressions. `zlib`

Utilities
U

uthash

Hash table implementation, allowing existing structures to be stored in a hash table easily. `1-clause BSD`

Utilities