C Programming
made by https://0x3d.site
GitHub - aosp-mirror/platform_bionicContribute to aosp-mirror/platform_bionic development by creating an account on GitHub.
Visit Site
GitHub - aosp-mirror/platform_bionic
bionic maintainer overview
bionic is Android's C library, math library, and dynamic linker.
This document is a high-level overview of making changes to bionic itself. If you're trying to use bionic, or want more in-depth information about some part of the implementation, see all the bionic documentation.
What are the big pieces of bionic?
libc/ --- libc.so, libc.a
The C library. Stuff like fopen(3)
and kill(2)
.
libm/ --- libm.so, libm.a
The math library. Traditionally Unix systems kept stuff like sin(3)
and
cos(3)
in a separate library to save space in the days before shared
libraries.
libdl/ --- libdl.so
The dynamic linker interface library. This is actually just a bunch of stubs
that the dynamic linker replaces with pointers to its own implementation at
runtime. This is where stuff like dlopen(3)
lives.
libstdc++/ --- libstdc++.so
The C++ ABI support functions. The C++ compiler doesn't know how to implement
thread-safe static initialization and the like, so it just calls functions that
are supplied by the system. Stuff like __cxa_guard_acquire
and
__cxa_pure_virtual
live here.
linker/ --- /system/bin/linker and /system/bin/linker64
The dynamic linker. When you run a dynamically-linked executable, its ELF file
has a DT_INTERP
entry that says "use the following program to start me". On
Android, that's either linker
or linker64
(depending on whether it's a
32-bit or 64-bit executable). It's responsible for loading the ELF executable
into memory and resolving references to symbols (so that when your code tries to
jump to fopen(3)
, say, it lands in the right place).
tests/ --- unit tests
The tests/
directory contains unit tests. Roughly arranged as one file per
publicly-exported header file. tests/headers/
contains compile-only tests
that just check that things are in the headers, whereas the "real" tests
check actual behavior.
benchmarks/ --- benchmarks
The benchmarks/
directory contains benchmarks, with its own documentation.
What's in libc/?
libc/
arch-arm/
arch-arm64/
arch-common/
arch-x86/
arch-x86_64/
# Each architecture has its own subdirectory for stuff that isn't shared
# because it's architecture-specific. There will be a .mk file in here that
# drags in all the architecture-specific files.
bionic/
# Every architecture needs a handful of machine-specific assembler files.
# They live here.
string/
# Most architectures have a handful of optional assembler files
# implementing optimized versions of various routines. The <string.h>
# functions are particular favorites.
syscalls/
# The syscalls directories contain script-generated assembler files.
# See 'Adding system calls' later.
include/
# The public header files on everyone's include path. These are a mixture of
# files written by us and files taken from BSD.
kernel/
# The kernel uapi header files. The "libc" headers that developers actually
# use are a mixture of headers provided by the C library itself (which,
# for bionic, are in bionic/libc/include/) and headers provided by the
# kernel. This is because ISO C and POSIX will say things like "there is
# a constant called PROT_NONE" or "there is a type called struct stat,
# and it contains a field called st_size", but they won't necessarily say
# what _value_ that constant has, or what _order_ the fields in a type
# are in. Those are left to individual kernels' ABIs. In an effort to --
# amongst other things, see https://lwn.net/Articles/507794/ for more
# background -- reduce copy & paste, the Linux kernel makes all the types
# and constants that make up the "userspace API" (uapi) available as
# headers separate from their internal-use headers (which contain all kinds
# of extra stuff that isn't available to userspace). We import the latest
# released kernel's uapi headers in external/kernel-headers/, but we don't
# use those headers directly in bionic. The bionic/libc/kernel/ directory
# contains scrubbed copies of the originals from external/kernel-headers/.
# The generate_uapi_headers.sh script should be used to go from a kernel
# tree to external/kernel-headers/ --- this takes care of the
# architecture-specific details. The update_all.py script should then be
# used to regenerate bionic's copy from external/kernel-headers/.
# The files in bionic must not be edited directly because any local changes
# will be overwritten by the next update. "Updating kernel header files"
# below has more information on this process.
private/
# These are private header files meant for use within bionic itself.
dns/
# Contains the DNS resolver (originates from NetBSD code).
upstream-freebsd/
upstream-netbsd/
upstream-openbsd/
# These directories contain upstream source with no local changes.
# Any time we can just use a BSD implementation of something unmodified,
# we should. Ideally these should probably have been three separate git
# projects in external/, but they're here instead mostly by historical
# accident (because it wouldn't have been easy to import just the tiny
# subset of these operating systems that -- unlike Android -- just have
# one huge repository rather than lots of little ones and a mechanism
# like our `repo` tool).
# The structure under these directories mimics the relevant upstream tree,
# but in order to actually be able to compile this code in our tree
# _without_ making modifications to the source files directly, we also
# have the following subdirectories in each one that aren't upstream:
android/
include/
# This is where we keep the hacks necessary to build BSD source
# in our world. The *-compat.h files are automatically included
# using -include, but we also provide equivalents for missing
# header/source files needed by the BSD implementation.
bionic/
# This is the biggest mess. The C++ files are files we own, typically
# because the Linux kernel interface is sufficiently different that we
# can't use any of the BSD implementations. The C files are usually
# legacy mess that needs to be sorted out, either by replacing it with
# current upstream source in one of the upstream directories or by
# switching the file to C++ and cleaning it up.
malloc_debug/
# The code that implements the functionality to enable debugging of
# native allocation problems.
stdio/
# These are legacy files of dubious provenance. We're working to clean
# this mess up, and this directory should disappear.
tools/
# Various tools used to maintain bionic.
tzcode/
# A modified superset of the IANA tzcode. Most of the modifications relate
# to Android's use of a single file (with corresponding index) to contain
# timezone data.
zoneinfo/
# Android-format timezone data.
# See 'Updating tzdata' later.
Adding libc wrappers for system calls
The first question you should ask is "should I add a libc wrapper for this system call?". The answer is usually "no".
The answer is "yes" if the system call is part of the POSIX standard.
The answer is probably "yes" if the system call has a wrapper in at least one other C library (typically glibc/musl or Apple's libc).
The answer may be "yes" if the system call has three/four distinct users in different projects, and there isn't a more specific higher-level library that would make more sense as the place to add the wrapper.
In all other cases, you should use syscall(3) instead.
Adding a system call usually involves:
-
Add an entry (or entries, in some cases) to SYSCALLS.TXT. See SYSCALLS.TXT itself for documentation on the format. See also the notes below for how to deal with tricky cases like
off_t
. -
Find the right header file to work in by looking up your system call on man7.org. (If there's no header file given, see the points above about whether we should really be adding this or not!)
-
Add constants (and perhaps types) to the appropriate header file. Note that you should check to see whether the constants are already in kernel uapi header files, in which case you just need to make sure that the appropriate header file in libc/include/
#include
s the relevantlinux/
file or files. -
Add function declarations to the appropriate header file. Don't forget to include the appropriate
__INTRODUCED_IN()
, with the right API level for the first release your system call wrapper will be in. See libc/include/android/api_level.h for the API levels. If the header file doesn't exist, copy all of libc/include/sys/sysinfo.h into your new file --- it's a good short example to start from.Note also our style for naming arguments: always use two leading underscores (so developers are free to use any of the unadorned names as macros without breaking things), avoid abbreviations, and ideally try to use the same name as an existing system call (to reduce the amount of English vocabulary required by people who just want to use the function signatures). If there's a similar function already in the C library, check what names it's used. Finally, prefer the
void*
orthography we use over thevoid *
you'll see on man7.org.) -
Add basic documentation to the header file. Again, the existing libc/include/sys/sysinfo.h is a good short example that shows the expected style.
Most of the detail should actually be left to the man7.org page, with only a brief one-sentence explanation (usually based on the description in the NAME section of the man page) in our documentation. Always include the return value/error reporting details (you can find out what the system call returns from the RETURN VALUE of the man page), but try to match the wording and style wording from our existing documentation; we're trying to minimize the amount of English readers need to understand by using the exact same wording where possible). Explicitly say which version of Android the function was added to in the documentation because the documentation generation tool doesn't yet understand
__INTRODUCED_IN()
.Explicitly call out any Android-specific changes/additions/limitations because they won't be on the man7.org page.
-
Add the function name to the correct section in libc/libc.map.txt; it'll be near the end of the file. You may need to add a new section if you're the first to add a system call to this version of Android.
-
Add a basic test. Don't try to test everything; concentrate on just testing the code that's actually in bionic, not all the functionality that's implemented in the kernel. For simple syscalls, that's just the auto-generated argument and return value marshalling.
Add a test in the right file in tests/. We have one file per header, so if your system call is exposed in <unistd.h>, for example, your test would go in tests/unistd_test.cpp.
A trivial test that deliberately supplies an invalid argument helps check that we're generating the right symbol and have the right declaration in the header file, and that the change to libc.map.txt from step 5 is correct. (You can use strace(1) manually to confirm that the correct system call is being made.)
For testing the kernel side of things, we should prefer to rely on https://github.com/linux-test-project/ltp for kernel testing, but you'll want to check that external/ltp does contain tests for the syscall you're adding. Also check that external/ltp is using the libc wrapper for the syscall rather than calling it "directly" via syscall(3)!
Some system calls are harder than others. The most common problem is a 64-bit
argument such as off64_t
(a pointer to a 64-bit argument is fine, since
pointers are always the "natural" size for the architecture regardless of the
size of the thing they point to). Whenever you have a function that takes
off_t
or off64_t
, you'll need to consider whether you actually need a foo()
and a foo64(), and whether they will use the same underlying system call or are
implemented as two different system calls. It's usually easiest to find a
similar system call and copy and paste from that. You'll definitely need to test
both on 32-bit and 64-bit. (These special cases warrant more testing than the
easy cases, even if only manual testing with strace. Sadly it isn't always
feasible to write a working test for the interesting cases -- offsets larger
than 2GiB, say -- so you may end up just writing a "meaningless" program whose
only purpose is to give you patterns to look for when run under strace(1).)
A general example of adding a system call: https://android-review.googlesource.com/c/platform/bionic/+/2073827
Debugging tips
- Key error for a new codename in libc/libc.map.txt
e.g. what you add in libc/libc.map.txt is:
LIBC_V { # introduced=Vanilla
global:
xxx; // the new system call you add
} LIBC_U;
The error output is:
Traceback (most recent call last):
File "/path/tp/out/soong/.temp/Soong.python_qucjwd7g/symbolfile/__init__.py", line 171,
in decode_api_level_tag
decoded = str(decode_api_level(value, api_map))
File "/path/to/out/soong/.temp/Soong.python_qucjwd7g/symbolfile/__init__.py", line 157,
in decode_api_level
return api_map[api]
KeyError: 'Vanilla'
Solution: Ask in the team and wait for the update.
- Use of undeclared identifier of the new system call in the test
Possible Solution: Check everything ready in the files mentioned above first. Maybe glibc matters. Follow the example and try #if defined(GLIBC).
Updating kernel header files
As mentioned above, this is currently a two-step process:
- Use generate_uapi_headers.sh to go from a Linux source tree to appropriate contents for external/kernel-headers/.
- Run update_all.py to scrub those headers and import them into bionic.
Note that if you're actually just trying to expose device-specific headers to
build your device drivers, you shouldn't modify bionic. Instead use
TARGET_DEVICE_KERNEL_HEADERS
and friends described in config.mk.
Updating tzdata
This is handled by the libcore team, because they own icu, and that needs to be updated in sync with bionic). See system/timezone/README.android.
Verifying changes
If you make a change that is likely to have a wide effect on the tree (such as a
libc header change), you should run make checkbuild
. A regular make
will
not build the entire tree; just the minimum number of projects that are
required for the device. Tests, additional developer tools, and various other
modules will not be built. Note that make checkbuild
will not be complete
either, as make tests
covers a few additional modules, but generally speaking
make checkbuild
is enough.
Running the tests
The tests are all built from the tests/ directory. There is a separate
directory benchmarks/
containing benchmarks, and that has its own
documentation on running the benchmarks.
Device tests
$ mma # In $ANDROID_ROOT/bionic.
$ adb root && adb remount && adb sync
$ adb shell /data/nativetest/bionic-unit-tests/bionic-unit-tests
$ adb shell \
/data/nativetest/bionic-unit-tests-static/bionic-unit-tests-static
# Only for 64-bit targets
$ adb shell /data/nativetest64/bionic-unit-tests/bionic-unit-tests
$ adb shell \
/data/nativetest64/bionic-unit-tests-static/bionic-unit-tests-static
Note that we use our own custom gtest runner that offers a superset of the options documented at https://github.com/google/googletest/blob/main/docs/advanced.md#running-test-programs-advanced-options, in particular for test isolation and parallelism (both on by default).
Device tests via CTS
Most of the unit tests are executed by CTS. By default, CTS runs as
a non-root user, so the unit tests must also pass when not run as root.
Some tests cannot do any useful work unless run as root. In this case,
the test should check getuid() == 0
and do nothing otherwise (typically
we log in this case to prevent accidents!). Obviously, if the test can be
rewritten to not require root, that's an even better solution.
Currently, the list of bionic CTS tests is generated at build time by running a host version of the test executable and dumping the list of all tests. In order for this to continue to work, all architectures must have the same number of tests, and the host version of the executable must also have the same number of tests.
Running the gtests directly is orders of magnitude faster than using CTS, but in cases where you really have to run CTS:
$ make cts # In $ANDROID_ROOT.
$ adb unroot # Because real CTS doesn't run as root.
# This will sync any *test* changes, but not *code* changes:
$ cts-tradefed \
run singleCommand cts --skip-preconditions -m CtsBionicTestCases
Host tests
The host tests require that you have lunch
ed either an x86 or x86_64 target.
Note that due to ABI limitations (specifically, the size of pthread_mutex_t),
32-bit bionic requires PIDs less than 65536. To enforce this, set /proc/sys/kernel/pid_max
to 65536.
$ ./tests/run-on-host.sh 32
$ ./tests/run-on-host.sh 64 # For x86_64-bit *targets* only.
You can supply gtest flags as extra arguments to this script.
Against glibc
As a way to check that our tests do in fact test the correct behavior (and not just the behavior we think is correct), it is possible to run the tests against the host's glibc.
$ ./tests/run-on-host.sh glibc
Against musl
Another way to verify test behavior is to run against musl on the host. glibc musl don't always match, so this can be a good way to find the more complicated corners of the spec. If they do match, bionic probably should too!
$ OUT_DIR=$(ANDROID_BUILD_TOP)/musl-out ./tests/run-on-host.sh musl
Note: the alternate OUT_DIR is used to avoid causing excessive rebuilding when switching between glibc and musl. The first musl test run will be expensive because it will not reuse any already built artifacts, but subsequent runs will be cheaper than if you hadn't used it.
Gathering test coverage
To get test coverage for bionic, use //bionic/build/coverage.sh
. Before
running, follow the instructions at the top of the file to rebuild bionic with
coverage instrumentation.
Attaching GDB to the tests
Bionic's test runner will run each test in its own process by default to prevent tests failures from impacting other tests. This also has the added benefit of running them in parallel, so they are much faster.
However, this also makes it difficult to run the tests under GDB. To prevent
each test from being forked, run the tests with the flag --no-isolate
.
32-bit ABI bugs
See 32-bit ABI bugs.
More Resourcesto explore the angular.
mail [email protected] to add your project or resources here 🔥.
- 1Create new page · clibs/clib Wiki
https://github.com/clibs/clib/wiki/Packages.
Package manager for the C programming language. Contribute to clibs/clib development by creating an account on GitHub.
- 2utf8proc/LICENSE.md at master · JuliaStrings/utf8proc
https://github.com/JuliaStrings/utf8proc/blob/master/LICENSE.md
a clean C library for processing UTF-8 Unicode data - JuliaStrings/utf8proc
- 3ape_tag_libs/c at master · jeremyevans/ape_tag_libs
https://github.com/jeremyevans/ape_tag_libs/tree/master/c
Libaries for reading/writing APEv2 tags in many languages - jeremyevans/ape_tag_libs
- 4Build software better, together
https://github.com/clibs/clib.
GitHub is where people build software. More than 100 million people use GitHub to discover, fork, and contribute to over 420 million projects.
- 5Small strings compression library
https://github.com/antirez/smaz
Small strings compression library. Contribute to antirez/smaz development by creating an account on GitHub.
- 6cmathl/LICENSE at master · ScientificC/cmathl
https://github.com/ScientificC/cmathl/blob/master/LICENSE
A pure-C math library with a great variety of mathematical functions. Seeks to be close to C89/C90 compliant for portability. - ScientificC/cmathl
- 7Minimal unit testing framework for C
https://github.com/siu/minunit
Minimal unit testing framework for C. Contribute to siu/minunit development by creating an account on GitHub.
- 8📚 single header utf8 string functions for C and C++
https://github.com/sheredom/utf8.h
📚 single header utf8 string functions for C and C++ - sheredom/utf8.h
- 9A template system for Emacs
https://github.com/joaotavora/yasnippet
A template system for Emacs. Contribute to joaotavora/yasnippet development by creating an account on GitHub.
- 10Asynchronous networking for C
https://github.com/rxi/dyad
Asynchronous networking for C . Contribute to rxi/dyad development by creating an account on GitHub.
- 11Super Light Regexp engine for C/C++
https://github.com/cesanta/slre
Super Light Regexp engine for C/C++. Contribute to cesanta/slre development by creating an account on GitHub.
- 12Netstring for C
https://github.com/liteserver/netstring-c
Netstring for C. Contribute to liteserver/netstring-c development by creating an account on GitHub.
- 13A protocol buffers library for C
https://github.com/cloudwu/pbc
A protocol buffers library for C. Contribute to cloudwu/pbc development by creating an account on GitHub.
- 14Pblog is a small, low overhead, structured logging library
https://github.com/google/pblog
Pblog is a small, low overhead, structured logging library - google/pblog
- 15Parser combinators for binary formats, in C. Yes, in C. What? Don't look at me like that.
https://github.com/abiggerhammer/hammer
Parser combinators for binary formats, in C. Yes, in C. What? Don't look at me like that. - abiggerhammer/hammer
- 16libelf
https://github.com/WolfgangSt/libelf
libelf. Contribute to WolfgangSt/libelf development by creating an account on GitHub.
- 17Open MPI main development repository
https://github.com/open-mpi/ompi
Open MPI main development repository. Contribute to open-mpi/ompi development by creating an account on GitHub.
- 18Your friendly e-mail address validation library.
https://github.com/dertuxmalwieder/libvldmail
Your friendly e-mail address validation library. Contribute to dertuxmalwieder/libvldmail development by creating an account on GitHub.
- 19A shebang-friendly script for "interpreting" single C99, C11, and C++ files, including rcfile support.
https://github.com/RhysU/c99sh
A shebang-friendly script for "interpreting" single C99, C11, and C++ files, including rcfile support. - RhysU/c99sh
- 20Minimal Huffman coder/decoder
https://github.com/adamierymenko/huffandpuff
Minimal Huffman coder/decoder. Contribute to adamierymenko/huffandpuff development by creating an account on GitHub.
- 21C library/compiler for the Cap'n Proto serialization/RPC protocol
https://github.com/jmckaskill/c-capnproto
C library/compiler for the Cap'n Proto serialization/RPC protocol - jmckaskill/c-capnproto
- 22C-code generator for docopt language.
https://github.com/docopt/docopt.c
C-code generator for docopt language. Contribute to docopt/docopt.c development by creating an account on GitHub.
- 23syntastic/LICENCE at master · vim-syntastic/syntastic
https://github.com/vim-syntastic/syntastic/blob/master/LICENCE
Syntax checking hacks for vim. Contribute to vim-syntastic/syntastic development by creating an account on GitHub.
- 24tiny recursive descent expression parser, compiler, and evaluation engine for math expressions
https://github.com/codeplea/tinyexpr
tiny recursive descent expression parser, compiler, and evaluation engine for math expressions - codeplea/tinyexpr
- 25libonion - Coralbits S.L.
https://www.coralbits.com/libonion/
Lightweight C library to add web server functionality to your program libonion is a lightweight library to help you create webservers in C programming language. These webservers may be a web application, a means of expanding your own application to give it web functionality or even a fully featured webserver. The user can create new […]
- 26http request/response parser for c
https://github.com/nodejs/http-parser
http request/response parser for c. Contribute to nodejs/http-parser development by creating an account on GitHub.
- 27commonmark-spec/LICENSE at master · commonmark/commonmark-spec
https://github.com/commonmark/commonmark-spec/blob/master/LICENSE
CommonMark spec, with reference implementations in C and JavaScript - commonmark/commonmark-spec
- 28A tool for use with clang to analyze #includes in C and C++ source files
https://github.com/include-what-you-use/include-what-you-use
A tool for use with clang to analyze #includes in C and C++ source files - include-what-you-use/include-what-you-use
- 29A non-backtracking NFA/DFA-based Perl-compatible regex engine matching on large data streams
https://github.com/openresty/sregex
A non-backtracking NFA/DFA-based Perl-compatible regex engine matching on large data streams - openresty/sregex
- 30A portable foreign-function interface library.
https://github.com/libffi/libffi
A portable foreign-function interface library. Contribute to libffi/libffi development by creating an account on GitHub.
- 31Universal configuration library parser
https://github.com/vstakhov/libucl
Universal configuration library parser. Contribute to vstakhov/libucl development by creating an account on GitHub.
- 32On the fly syntax checking for GNU Emacs
https://github.com/flycheck/flycheck
On the fly syntax checking for GNU Emacs. Contribute to flycheck/flycheck development by creating an account on GitHub.
- 33A Linux packet crafting tool.
https://github.com/rafael-santiago/pig
A Linux packet crafting tool. Contribute to rafael-santiago/pig development by creating an account on GitHub.
- 34A New Kind of Instant Messaging
https://tox.chat/
Whether it's corporations or governments, there's just too much digital spying going on today. Tox is an easy to use application that connects you with friends and family without anyone else listening in. While other big-name services require you to pay for features, Tox is totally free and comes without advertising — forever.
- 35A simple C library for working with KD-Trees
https://github.com/jtsiomb/kdtree
A simple C library for working with KD-Trees. Contribute to jtsiomb/kdtree development by creating an account on GitHub.
- 36A mini C library for interacting with the Twitter OAuth api.
https://github.com/sinemetu1/twitc
A mini C library for interacting with the Twitter OAuth api. - sinemetu1/twitc
- 37Main gperftools repository
https://github.com/gperftools/gperftools
Main gperftools repository. Contribute to gperftools/gperftools development by creating an account on GitHub.
- 38Lint C-based files using Clang.
https://github.com/AtomLinter/linter-clang
Lint C-based files using Clang. Contribute to AtomLinter/linter-clang development by creating an account on GitHub.
- 39WAFer is a C language-based software platform for scalable server-side and networking applications. Think node.js for C programmers.
https://github.com/riolet/WAFer
WAFer is a C language-based software platform for scalable server-side and networking applications. Think node.js for C programmers. - riolet/WAFer
- 40ini file parser
https://github.com/ndevilla/iniparser
ini file parser. Contribute to ndevilla/iniparser development by creating an account on GitHub.
- 41simple neural network library in ANSI C
https://github.com/codeplea/genann
simple neural network library in ANSI C. Contribute to codeplea/genann development by creating an account on GitHub.
- 42An eventing framework for building high performance and high scalability systems in C.
https://github.com/facebookarchive/libphenom
An eventing framework for building high performance and high scalability systems in C. - facebookarchive/libphenom
- 43A cross-platform protocol library to communicate with iOS devices
https://github.com/libimobiledevice/libimobiledevice
A cross-platform protocol library to communicate with iOS devices - libimobiledevice/libimobiledevice
- 44H2O - the optimized HTTP/1, HTTP/2, HTTP/3 server
https://github.com/h2o/h2o/
H2O - the optimized HTTP/1, HTTP/2, HTTP/3 server. Contribute to h2o/h2o development by creating an account on GitHub.
- 45A portable MQTT C client for embedded systems and PCs alike.
https://github.com/LiamBindle/MQTT-C
A portable MQTT C client for embedded systems and PCs alike. - LiamBindle/MQTT-C
- 46Binary Serialization
https://github.com/liteserver/binn
Binary Serialization. Contribute to liteserver/binn development by creating an account on GitHub.
- 47Package manager for the C programming language.
https://github.com/clibs/clib
Package manager for the C programming language. Contribute to clibs/clib development by creating an account on GitHub.
- 48Yet another INI parser
https://github.com/madmurphy/libconfini
Yet another INI parser. Contribute to madmurphy/libconfini development by creating an account on GitHub.
- 49C-Library for unit testing.
https://github.com/rafael-santiago/cutest
C-Library for unit testing. Contribute to rafael-santiago/cutest development by creating an account on GitHub.
- 50A Parser Combinator library for C
https://github.com/orangeduck/mpc
A Parser Combinator library for C. Contribute to orangeduck/mpc development by creating an account on GitHub.
- 51An implementation of the MessagePack serialization format in C / msgpack.org[C]
https://github.com/camgunz/cmp
An implementation of the MessagePack serialization format in C / msgpack.org[C] - camgunz/cmp
- 52Platform independent Near Field Communication (NFC) library
https://github.com/nfc-tools/libnfc
Platform independent Near Field Communication (NFC) library - nfc-tools/libnfc
- 53Lightweight exception implementation for C
https://github.com/ThrowTheSwitch/CException
Lightweight exception implementation for C. Contribute to ThrowTheSwitch/CException development by creating an account on GitHub.
- 54CommonMark spec, with reference implementations in C and JavaScript
https://github.com/commonmark/commonmark-spec
CommonMark spec, with reference implementations in C and JavaScript - commonmark/commonmark-spec
- 55AddressSanitizer, ThreadSanitizer, MemorySanitizer
https://github.com/google/sanitizers
AddressSanitizer, ThreadSanitizer, MemorySanitizer - google/sanitizers
- 56a clean C library for processing UTF-8 Unicode data
https://github.com/JuliaStrings/utf8proc
a clean C library for processing UTF-8 Unicode data - JuliaStrings/utf8proc
- 57nanomsg library
https://github.com/nanomsg/nanomsg
nanomsg library. Contribute to nanomsg/nanomsg development by creating an account on GitHub.
- 58libusb/COPYING at master · libusb/libusb
https://github.com/libusb/libusb/blob/master/COPYING
A cross-platform library to access USB devices . Contribute to libusb/libusb development by creating an account on GitHub.
- 59Protocol Buffers implementation in C
https://github.com/protobuf-c/protobuf-c
Protocol Buffers implementation in C. Contribute to protobuf-c/protobuf-c development by creating an account on GitHub.
- 60An HTML5 parsing library in pure C99
https://github.com/google/gumbo-parser
An HTML5 parsing library in pure C99. Contribute to google/gumbo-parser development by creating an account on GitHub.
- 61Wrapper library for the BSD sockets API with a nicer C99 interface
https://github.com/silentbicycle/socket99
Wrapper library for the BSD sockets API with a nicer C99 interface - silentbicycle/socket99
- 62Compile and execute C "scripts" in one go!
https://github.com/ryanmjacobs/c
Compile and execute C "scripts" in one go! Contribute to ryanmjacobs/c development by creating an account on GitHub.
- 63The approximate regex matching library and agrep command line tool.
https://github.com/laurikari/tre/
The approximate regex matching library and agrep command line tool. - laurikari/tre
- 64MPack - A C encoder/decoder for the MessagePack serialization format / msgpack.org[C]
https://github.com/ludocode/mpack
MPack - A C encoder/decoder for the MessagePack serialization format / msgpack.org[C] - ludocode/mpack
- 65ARCHIVED - libbson has moved to https://github.com/mongodb/mongo-c-driver/tree/master/src/libbson
https://github.com/mongodb/libbson
ARCHIVED - libbson has moved to https://github.com/mongodb/mongo-c-driver/tree/master/src/libbson - mongodb/libbson
- 66A cross platform C99 library to get cpu features at runtime.
https://github.com/google/cpu_features
A cross platform C99 library to get cpu features at runtime. - google/cpu_features
- 67RabbitMQ C client
https://github.com/alanxz/rabbitmq-c
RabbitMQ C client. Contribute to alanxz/rabbitmq-c development by creating an account on GitHub.
- 68Home - OpenMP
https://www.openmp.org/
yes
- 69Simple Dynamic Strings library for C
https://github.com/antirez/sds
Simple Dynamic Strings library for C. Contribute to antirez/sds development by creating an account on GitHub.
- 70OpenCL - The Open Standard for Parallel Programming of Heterogeneous Systems
https://www.khronos.org/opencl/
OpenCL™ (Open Computing Language) is an open, royalty-free standard for cross-platform, parallel programming of diverse accelerators found in supercomputers, cloud servers, personal computers, mobile devices and embedded platforms. OpenCL greatly improves the speed and responsiveness of a wide spectrum of applications in numerous market categories including professional creative tools,
- 71Syntax checking hacks for vim
https://github.com/vim-syntastic/syntastic
Syntax checking hacks for vim. Contribute to vim-syntastic/syntastic development by creating an account on GitHub.
- 72aosp-mirror/platform_bionic
https://github.com/aosp-mirror/platform_bionic
Contribute to aosp-mirror/platform_bionic development by creating an account on GitHub.
- 73regexp4 engine (C-lang)
https://github.com/nasciiboy/recursiveregexpraptor-4
regexp4 engine (C-lang). Contribute to nasciiboy/RecursiveRegexpRaptor-4 development by creating an account on GitHub.
- 74libgit2/COPYING at main · libgit2/libgit2
https://github.com/libgit2/libgit2/blob/master/COPYING
A cross-platform, linkable library implementation of Git that you can use in your application. - libgit2/libgit2
- 75capstone/LICENSE.TXT at master · capstone-engine/capstone
https://github.com/aquynh/capstone/blob/master/LICENSE.TXT
Capstone disassembly/disassembler framework for ARM, ARM64 (ARMv8), Alpha, BPF, Ethereum VM, HPPA, LoongArch, M68K, M680X, Mips, MOS65XX, PPC, RISC-V(rv32G/rv64G), SH, Sparc, SystemZ, TMS320C64X, T...
- 76An implementation of the TLS/SSL protocols
https://github.com/awslabs/s2n
An implementation of the TLS/SSL protocols. Contribute to aws/s2n-tls development by creating an account on GitHub.
- 77Capstone disassembly/disassembler framework for ARM, ARM64 (ARMv8), Alpha, BPF, Ethereum VM, HPPA, LoongArch, M68K, M680X, Mips, MOS65XX, PPC, RISC-V(rv32G/rv64G), SH, Sparc, SystemZ, TMS320C64X, TriCore, Webassembly, XCore and X86.
https://github.com/aquynh/capstone
Capstone disassembly/disassembler framework for ARM, ARM64 (ARMv8), Alpha, BPF, Ethereum VM, HPPA, LoongArch, M68K, M680X, Mips, MOS65XX, PPC, RISC-V(rv32G/rv64G), SH, Sparc, SystemZ, TMS320C64X, T...
- 78Atom-linter extension to lint C/C++ source files using gcc/g++
https://github.com/hebaishi/linter-gcc
Atom-linter extension to lint C/C++ source files using gcc/g++ - AtomLinter/linter-gcc
- 79🚀 Making multi-player gamedev simpler since 2017
https://github.com/librg/librg
🚀 Making multi-player gamedev simpler since 2017. Contribute to zpl-c/librg development by creating an account on GitHub.
- 80Public domain cross platform lock free thread caching 16-byte aligned memory allocator implemented in C
https://github.com/rampantpixels/rpmalloc
Public domain cross platform lock free thread caching 16-byte aligned memory allocator implemented in C - mjansson/rpmalloc
- 81The 2-Clause BSD License
https://opensource.org/licenses/BSD-2-Clause
Note: This license has also been called the “Simplified BSD License” and the “FreeBSD License”. See also the 3-clause BSD License. Copyright <YEAR> <COPYRIGHT HOLDER> Redistribution and use in source…
- 82ICU - International Components for Unicode
http://site.icu-project.org/
News 2024-04-17: ICU 75 is now available. It updates to CLDR 45 (beta blog) locale data with new locales and various additions and corrections. C++ code now requires C++17 and is being made more robust. The CLDR MessageFormat 2.0 specification is now in technology preview, together with a
- 83Understanding and Using C Pointers
http://shop.oreilly.com/product/0636920028000.do
Improve your programming through a solid understanding of C pointers and memory management. With this practical book, you’ll learn how pointers provide the mechanism to dynamically manipulate memory, enhance support … - Selection from Understanding and Using C Pointers [Book]
- 8421st Century C, 2nd Edition
http://shop.oreilly.com/product/0636920033677.do
Throw out your old ideas of C, and relearn a programming language that’s substantially outgrown its origins. With this revised edition of 21st Century C, you’ll discover up-to-date techniques … - Selection from 21st Century C, 2nd Edition [Book]
- 85Jens Gustedt / P99 - macros and functions for C99 · GitLab
http://p99.gforge.inria.fr/
P99 is a suite of macro and function definitions that ease the programming in C99, aka C 1999. By using new tools from C99 we implement default arguments...
- 86C Pocket Reference
http://shop.oreilly.com/product/9780596004361.do
C is one of the oldest programming languages and still one of the most widely used. Whether you're an experienced C programmer or you're new to the language, you know … - Selection from C Pocket Reference [Book]
- 87Head First C
http://shop.oreilly.com/product/0636920015482.do
Ever wished you could learn C from a book? Head First C provides a complete learning experience for C and structured imperative programming. With a unique method that goes beyond … - Selection from Head First C [Book]
- 88Throw The Switch
http://www.throwtheswitch.org/
Unit Testing (TDD) Embedded C Code. Making Awesome and Reliable Firmware in C Doesn't Have to Suck.
- 89Projects
http://source.icu-project.org/repos/icu/icu/tags/latest/LICENSE
Projects The Unicode StandardThe Unicode Standard is a character coding system designed to support the worldwide interchange, processing, and display of the written texts of the diverse languages and technical disciplines of the modern world. In addition, it supports classical and historical texts of many written languages. Unicode CLDR (Common Locale
- 90A fast build tool
https://buck.build/
This project is no longer actively maintained. Please see https://buck2.build for the build system that replaces it. Old content continues below for historical purposes. Buck is a build system developed and used by Facebook. It encourages the creation of small, reusable modules consisting of code and resources, and supports a variety of languages.
- 91Build software better, together
https://github.com/eug/awesome-opengl.
GitHub is where people build software. More than 100 million people use GitHub to discover, fork, and contribute to over 420 million projects.
- 92Home
https://github.com/json-c/json-c/wiki
https://github.com/json-c/json-c is the official code repository for json-c. See the wiki for release tarballs for download. API docs at http://json-c.github.io/json-c/ - json-c/json-c
- 93Home
https://github.com/rib/cogl-web/wiki
The cogl3d.org website content. Contribute to rib/cogl-web development by creating an account on GitHub.
- 94qtbase/LICENSE.GPL3-EXCEPT at 5.11 · qt/qtbase
https://github.com/qt/qtbase/blob/5.11/LICENSE.GPL3-EXCEPT
Qt Base (Core, Gui, Widgets, Network, ...). Contribute to qt/qtbase development by creating an account on GitHub.
- 95Build software better, together
https://github.com/vinjn/awesome-vulkan.
GitHub is where people build software. More than 100 million people use GitHub to discover, fork, and contribute to over 420 million projects.
- 96Home
https://github.com/netmail-open/wjelement/wiki
advanced, flexible JSON manipulation in C. Contribute to netmail-open/wjelement development by creating an account on GitHub.
- 97C99 heightmap utilities.
https://github.com/prideout/heman
C99 heightmap utilities. Contribute to prideout/heman development by creating an account on GitHub.
- 98Read-only mirror of official repo on openldap.org. Issues and pull requests here are ignored. Use OpenLDAP ITS for issues.
https://github.com/LMDB/lmdb
Read-only mirror of official repo on openldap.org. Issues and pull requests here are ignored. Use OpenLDAP ITS for issues. - LMDB/lmdb
- 99contiki/LICENSE at master · contiki-os/contiki
https://github.com/contiki-os/contiki/blob/master/LICENSE
The official git repository for Contiki, the open source OS for the Internet of Things - contiki-os/contiki
- 100Intel® Implicit SPMD Program Compiler
https://github.com/ispc/ispc
Intel® Implicit SPMD Program Compiler. Contribute to ispc/ispc development by creating an account on GitHub.
- 101Pure C Game Engine
https://github.com/orangeduck/Corange
Pure C Game Engine. Contribute to orangeduck/Corange development by creating an account on GitHub.
- 102LCUI/LICENSE.TXT at develop · lc-soft/LCUI
https://github.com/lc-soft/LCUI/blob/develop/LICENSE.TXT
C library for building user interfaces. Contribute to lc-soft/LCUI development by creating an account on GitHub.
- 103Parallel, indexed xz compressor
https://github.com/vasi/pixz
Parallel, indexed xz compressor. Contribute to vasi/pixz development by creating an account on GitHub.
- 104Quake GPL Source Release
https://github.com/id-Software/Quake
Quake GPL Source Release. Contribute to id-Software/Quake development by creating an account on GitHub.
- 105a small build system with a focus on speed
https://github.com/ninja-build/ninja
a small build system with a focus on speed. Contribute to ninja-build/ninja development by creating an account on GitHub.
- 106Quake 2 GPL Source Release
https://github.com/id-Software/Quake-2
Quake 2 GPL Source Release. Contribute to id-Software/Quake-2 development by creating an account on GitHub.
- 107libui/LICENSE at master · andlabs/libui
https://github.com/andlabs/libui/blob/master/LICENSE
Simple and portable (but not inflexible) GUI library in C that uses the native GUI technologies of each platform it supports. - andlabs/libui
- 108stb single-file public domain libraries for C/C++
https://github.com/nothings/stb
stb single-file public domain libraries for C/C++. Contribute to nothings/stb development by creating an account on GitHub.
- 109Murmur3 hash in C
https://github.com/PeterScott/murmur3
Murmur3 hash in C. Contribute to PeterScott/murmur3 development by creating an account on GitHub.
- 110Lightweight JSON library written in C.
https://github.com/kgabis/parson
Lightweight JSON library written in C. Contribute to kgabis/parson development by creating an account on GitHub.
- 111Brotli compression format
https://github.com/google/brotli
Brotli compression format. Contribute to google/brotli development by creating an account on GitHub.
- 112xmake/LICENSE.md at master · xmake-io/xmake
https://github.com/xmake-io/xmake/blob/master/LICENSE.md
🔥 A cross-platform build utility based on Lua. Contribute to xmake-io/xmake development by creating an account on GitHub.
- 113Premake
https://github.com/premake/premake-core
Premake. Contribute to premake/premake-core development by creating an account on GitHub.
- 114Simple and portable (but not inflexible) GUI library in C that uses the native GUI technologies of each platform it supports.
https://github.com/andlabs/libui
Simple and portable (but not inflexible) GUI library in C that uses the native GUI technologies of each platform it supports. - andlabs/libui
- 115A single-header ANSI C gui library
https://github.com/vurtun/nuklear
A single-header ANSI C gui library. Contribute to vurtun/nuklear development by creating an account on GitHub.
- 116Visual Studio Code - Code Editing. Redefined
https://code.visualstudio.com/
Visual Studio Code is a code editor redefined and optimized for building and debugging modern web and cloud applications. Visual Studio Code is free and available on your favorite platform - Linux, macOS, and Windows.
- 117The GTK Project - A free and open-source cross-platform widget toolkit
https://www.gtk.org/gtk-doc/
GTK is a free and open-source cross-platform widget toolkit for creating graphical user interfaces.
- 118NIH Utility Library
https://github.com/keybuk/libnih
NIH Utility Library. Contribute to keybuk/libnih development by creating an account on GitHub.
- 119raylib
https://www.raylib.com/
raylib is a simple and easy-to-use library to enjoy videogames programming.
- 120The GTK Project - A free and open-source cross-platform widget toolkit
https://www.gtk.org/
GTK is a free and open-source cross-platform widget toolkit for creating graphical user interfaces.
- 121Easy to use, modular, header only, macro based, generic and type-safe Data Structures in C
https://github.com/LeoVen/C-Macro-Collections
Easy to use, modular, header only, macro based, generic and type-safe Data Structures in C - LeoVen/C-Macro-Collections
- 122advanced, flexible JSON manipulation in C
https://github.com/netmail-open/wjelement/
advanced, flexible JSON manipulation in C. Contribute to netmail-open/wjelement development by creating an account on GitHub.
- 123Simple hash table implementation for C.
https://github.com/watmough/jwHash
Simple hash table implementation for C. Contribute to watmough/jwHash development by creating an account on GitHub.
- 124ioquake3
https://ioquake3.org/
Play Quake 3, mods, new games, or make your own!
- 125OpenGL ES - The Standard for Embedded Accelerated 3D Graphics
https://www.khronos.org/opengles/
OpenGL ES is a royalty-free, cross-platform API for full-function 2D and 3D graphics on embedded systems - including consoles, phones, appliances and vehicles.
- 126OpenGL SC - OpenGL graphics for the safety critical industry
https://www.khronos.org/openglsc/
The open standard OpenGL SC Safety Critical Profile is defined to meet the unique needs of the safety-critical market for avionics, industrial, military, medical and automotive applications including D0178-B certification.
- 127Minimalistic C client for Redis >= 1.2
https://github.com/redis/hiredis
Minimalistic C client for Redis >= 1.2. Contribute to redis/hiredis development by creating an account on GitHub.
- 128A fast compressor/decompressor
https://github.com/google/snappy
A fast compressor/decompressor. Contribute to google/snappy development by creating an account on GitHub.
- 129PostgreSQL
https://www.postgresql.org/
The world's most advanced open source database.
- 130Improved JPEG encoder.
https://github.com/mozilla/mozjpeg
Improved JPEG encoder. Contribute to mozilla/mozjpeg development by creating an account on GitHub.
- 131💩 Colour ASCII Art Library
https://github.com/cacalabs/libcaca
💩 Colour ASCII Art Library. Contribute to cacalabs/libcaca development by creating an account on GitHub.
- 132I Do Not Know C
https://kukuruku.co/post/i-do-not-know-c/
The purpose of this article is to make everyone (especially C programmers) say: “I do not know C”. I want to show that the dark corners of C are much closer than it seems, and even trivial code lines may contain undefined behavior. The article is organized as a set of questions and answers. All the examples are separate files of the source code. 1. int i; int i = 10; Q: Is this code correct?
- 133GIFLIB
https://sourceforge.net/projects/giflib/
Download GIFLIB for free. A library and utilities for processing GIFs. giflib is a library for reading and writing gif images. It is API and ABI compatible with libungif which was in wide use while the LZW compression algorithm was patented.
- 134Redis - The Real-time Data Platform
https://redis.io/
Developers love Redis. Unlock the full potential of the Redis database with Redis Enterprise and start building blazing fast apps.
- 135The Developer Data Platform
https://www.mongodb.com/.
Get your ideas to market faster with a developer data platform built on the leading modern database. MongoDB makes working with data easy.
- 136C library for building user interfaces
https://github.com/lc-soft/LCUI/
C library for building user interfaces. Contribute to lc-soft/LCUI development by creating an account on GitHub.
- 137qt-creator/LICENSE.GPL3-EXCEPT at master · qt-creator/qt-creator
https://github.com/qt-creator/qt-creator/blob/master/LICENSE.GPL3-EXCEPT
A cross-platform Qt IDE. Contribute to qt-creator/qt-creator development by creating an account on GitHub.
- 138Learning C with gdb - Blog - Recurse Center
https://www.recurse.com/blog/5-learning-c-with-gdb
The Recurse Center is a self-directed, community-driven educational retreat for programmers in New York City.
- 139Introduction to "Fun" C (using GCC)
https://gist.github.com/eatonphil/21b3d6569f24ad164365
Introduction to "Fun" C (using GCC). GitHub Gist: instantly share code, notes, and snippets.
- 140Open Source Database (RDBMS) for the Enterprise | MariaDB
https://mariadb.com/
MariaDB provides enterprise open source database and cloud managed database services to support scalability, mission-critical deployments, and more.
- 141Introduction to OpenMP - Tim Mattson (Intel)
https://www.youtube.com/playlist?list=PLLX-Q6B8xqZ8n8bwjGdzBJ25X2utwnoEG
Introduction to OpenMP - Tim Mattson (Intel) The OpenMP ARB thanks the University Program Office at Intel for permission to make this tutorial available. Sli...
- 142ispc/LICENSE.txt at main · ispc/ispc
https://github.com/ispc/ispc/blob/master/LICENSE.txt
Intel® Implicit SPMD Program Compiler. Contribute to ispc/ispc development by creating an account on GitHub.
- 143amazon-freertos/LICENSE at main · aws/amazon-freertos
https://github.com/aws/amazon-freertos/blob/master/LICENSE
DEPRECATED - See README.md. Contribute to aws/amazon-freertos development by creating an account on GitHub.
- 144AI-Enhanced Data Solutions with Database 23ai
https://www.oracle.com/database/berkeley-db/
Discover advanced database features like AI, security, and cloud solutions, and optimize your data with Oracle's robust technologies.
- 145qlibc/LICENSE at main · wolkykim/qlibc
https://github.com/wolkykim/qlibc/blob/master/LICENSE
qLibc is a simple and yet powerful C library providing generic data structures and algorithms. - wolkykim/qlibc
- 146One of the fastest hash functions
https://github.com/leo-yuriev/t1ha
One of the fastest hash functions. Contribute to erthink/t1ha development by creating an account on GitHub.
- 147Sunsetting Atom
https://atom.io/
We are archiving Atom and all projects under the Atom organization for an official sunset on December 15, 2022.
- 148Home | Vulkan | Cross platform 3D Graphics
https://www.khronos.org/vulkan/
Vulkan is a next generation graphics and compute API that provides high-efficiency, cross-platform access to modern GPUs used in PCs, consoles, mobile phones and embedded platforms.
- 149Mbed TLS
https://tls.mbed.org/
Project implements cryptographic primitives, X.509 certificate manipulation and the SSL/TLS and DTLS protocols.
- 150Situs SBOBET Online Link Daftar SBOBET88 Login Indonesia
http://anjuta.org/
SBOBET88 adalah situs judi bola resmi partner Betwin188 agen sbobet online mobile terpercaya 2024, penyedia link daftar sbobet login indonesia 24jam.
- 151C library for encoding, decoding and manipulating JSON data
http://www.digip.org/jansson/
C library for encoding, decoding and manipulating JSON data - akheron/jansson
- 152Developer Tools & IDE | The Eclipse Foundation
http://www.eclipse.org/ide/
Our community is innovating on the next generation of cloud native developer tools, including the Eclipse IDE which is the leading open platform for …
Related Articlesto learn about angular.
- 1Getting Started with C Programming: Beginner’s Guide
- 2Functions and Pointers in C: Write Efficient Code
- 3Memory Management in C: malloc and free
- 4File Handling in C: Reading and Writing Files with fopen and fwrite
- 5Data Structures in C: Linked Lists, Stacks, and Queues
- 6Multithreading in C: POSIX Threads (Pthreads)
- 7Getting Started with C Programming for Embedded Systems
- 8IoT Applications with C: Beginner’s Guide
- 9Optimizing C Code: Speed and Efficiency
- 10Common C Programming Pitfalls
FAQ'sto learn more about Angular JS.
mail [email protected] to add more queries here 🔍.
- 1
what can you do with c programming
- 2
why was the c programming language invented
- 3
where to download c programming language
- 4
which app is best for c programming in laptop
- 5
how c programming language was developed
- 6
how many days need to learn c programming
- 7
do you pronounce the c in schedule
- 8
which software is best for c programming
- 9
when was c programming language invented
- 10
what is c times c
- 11
what are arrays in c programming
- 13
who is the father of c language mcq
- 14
will c be replaced
- 15
was c written in assembly
- 16
what c programming is used for
- 17
how to do c programming in visual studio code
- 18
why c programming is called structured programming
- 19
which compiler is best for c programming
- 20
what c programming language is used for
- 21
will c++ ever die
- 22
is c programming language object oriented
- 23
when did c programming language come out
- 24
is c programming language case sensitive
- 25
why should i learn c programming language
- 26
why c programming is used
- 27
what is array in c programming
- 28
what can c programming be used for
- 29
who is the programming language c
- 30
which software is used for c programming
- 31
when c is called structured programming language
- 32
why c programming is called c
- 33
is c the first programming language
- 34
who developed c programming language
- 35
why should i learn c programming
- 36
who is the father of c programming
- 37
when c programming was developed
- 38
is c programming language
- 39
is c programming the same as c++
- 40
when was the c programming language developed
- 41
how to do c programming in mobile
- 42
how long will it take to learn c programming
- 43
who is the founder of c programming
- 45
how to use vs code for c programming
- 46
will c ever be replaced
- 47
who invented c programming
- 48
who uses c programming language
- 49
what does c programming look like
- 50
which is the best website to learn c programming
- 51
is c programming language still used
- 52
what are pointers in c programming
- 53
what is structure in c programming
- 54
who created c programming language
- 55
should i learn c programming first
- 56
who wrote c programming language
- 57
who made c programming language
- 58
what can c be used for
- 59
what are variables in c programming
- 60
how difficult is c programming
- 61
can c code run in c++
- 62
what are strings in c programming
- 63
who is the father of c
- 64
where to practice c programming
- 65
how c programming language works
- 66
is c programming hard
- 67
what is string in c programming
- 68
is c dead programming language
- 69
where to start c programming
- 70
what are structures in c programming
- 71
how c programming works
- 72
which book is best for c programming
- 73
what does c programming language look like
- 74
what did == mean in c programming
- 75
will c# replace c++
- 76
how to do c programming in laptop
- 77
where to learn c programming
- 78
how much time is required to learn c programming
- 79
do c programming online
- 80
is c programming worth learning
- 81
what are c programming languages
- 83
is c written in c
- 84
would i like programming
- 85
where to do c programming
- 86
what is pointer in c programming
- 87
what does c programming do
- 88
do c programming language
- 89
how to learn c programming
- 90
what are the features of c programming language
- 91
which ide is best for c programming
- 92
why c is called structured programming language
- 93
where to do c programming in laptop
- 94
is programming in c hard
- 95
who is the father of c programming language
- 96
whose line is it anyway cw schedule
- 97
is c programming still used
- 98
why c programming language
- 99
how to use code blocks for c programming
- 100
what does mean in c programming
- 101
does c programming have classes
- 102
can computers program themselves
- 103
how to do c programming in windows
- 104
what does c programming stand for
- 105
is c programming free
- 106
what are the data types in c programming
- 107
which programming language should i learn after c
- 108
how to start c programming
- 109
will c language die
- 110
what is an compiler in c programming
- 111
where should we do c programming
- 112
where was c programming invented
- 113
who made the c programming language
- 114
which software for c programming
- 115
where c programming is used
- 116
where can i learn c programming for free
- 117
how to do c programming in vs code
- 118
what is c as a programming language
- 119
does c have object oriented programming
- 120
why is c called a mid-level programming language
- 121
can c++ do everything c can
- 122
where is c programming language used
- 123
how does c programming language work
- 124
what are functions in c programming
- 125
do c programming in terminal
- 126
what are keywords in c programming
- 127
can c and c++ be mixed
- 128
why c programming is important
- 129
how to do c programming in ubuntu
- 130
how to practice c programming
- 131
what is embedded c programming
- 132
is c programming case sensitive
- 133
how long does it take to learn c programming
- 134
who is father of c language
- 135
what c programming language
- 136
why c programming is named as c
- 137
why learn c programming
- 138
when was c programming developed
- 139
is c programming easy
- 140
how does c programming work
- 141
is c good for beginners
- 142
which c programming language to learn
- 143
is c programming easy to learn
- 144
why is c named c
- 145
what does c stand for in programming
- 146
when was c programming language created
- 147
what is function in c programming
- 148
why was c invented
- 149
how to download c programming
- 150
what does void mean in c programming
More Sitesto check out once you're finished browsing here.
https://www.0x3d.site/
0x3d is designed for aggregating information.
https://nodejs.0x3d.site/
NodeJS Online Directory
https://cross-platform.0x3d.site/
Cross Platform Online Directory
https://open-source.0x3d.site/
Open Source Online Directory
https://analytics.0x3d.site/
Analytics Online Directory
https://javascript.0x3d.site/
JavaScript Online Directory
https://golang.0x3d.site/
GoLang Online Directory
https://python.0x3d.site/
Python Online Directory
https://swift.0x3d.site/
Swift Online Directory
https://rust.0x3d.site/
Rust Online Directory
https://scala.0x3d.site/
Scala Online Directory
https://ruby.0x3d.site/
Ruby Online Directory
https://clojure.0x3d.site/
Clojure Online Directory
https://elixir.0x3d.site/
Elixir Online Directory
https://elm.0x3d.site/
Elm Online Directory
https://lua.0x3d.site/
Lua Online Directory
https://c-programming.0x3d.site/
C Programming Online Directory
https://cpp-programming.0x3d.site/
C++ Programming Online Directory
https://r-programming.0x3d.site/
R Programming Online Directory
https://perl.0x3d.site/
Perl Online Directory
https://java.0x3d.site/
Java Online Directory
https://kotlin.0x3d.site/
Kotlin Online Directory
https://php.0x3d.site/
PHP Online Directory
https://react.0x3d.site/
React JS Online Directory
https://angular.0x3d.site/
Angular JS Online Directory