The Safe-C programming language was created in 2011. It is the result of an effort to modernize the C language so that it can be used to write reliable software.
In particular, array indices and pointers are checked to ensure that they cannot access memory outside the language's rules.
Safe-C is very similar to C (95% of the syntax is identical), so a C programmer will have no difficulty switching to Safe-C.
A Safe-C compiler for Windows is available
at this link.
Safe-C was used to develop the client and server software for the multi-user 3D virtual world https://planet-samuro.com
The standard Safe-C library includes the following components :
|simple arithmetic (abs, min, max)
|balanced binary trees (AVL)
|writing/reading on the dos console box
|md5, sha2, adler and crc checksums
|database (insert/delete/update/retrieve, transations on .db files - documentation)
|layer for using DirectX 10 & 11
|draw in a memory buffer (line, circle, text, image)
|text and binary files, directories, disk.
|file transfer protocol (ftp) - client and server
|graphic user interface (windows, listboxes, etc ..) with a main window using component directx
|hash table, dictionary (key to value)
|internet client and serveur (login, virtual html pages, ..)
|compression and decompression (jpg, gif, png, ..), image treatment
|reading of .ini files
|operations on large unsigned integers
|operations on vectors and matrices
|math functions (sin, cos, ..)
|information about network cards (windows-specific)
|interface to sql databases using odbc 3.0
|audio codec (see http://www.opus-codec.org/)
|create PDF files
|generation of random numbers
|read/write a key from registry (windows-specific)
|Windows Services - background processes (windows-specific)
|program installation, create a shortcut on desktop
|sending e-mails using protocol smtp
|sorting of arrays (bubblesort, heapsort, quicksort)
|microphone and speaker
|characters and strings (strcpy, sprintf, ..)
|system information (PC name, memory, nb of CPUs)
|network connection by tcpip (ipv4 and ipv6)
|storage of a text composed of lines
|parallel threads, synchronisation, timers
|conversion between ascii, utf-8 and utf-16
|video compression for nearly static images
|interface for video source
|user interface to create windows, buttons, listboxes, ..
|data compression : zip, unzip
|low-level interface with Windows
|low-level interface with DirectX 11
|low-level interface with DirectShow
The "Safe-C Reference Manual" is a normative description of the Safe-C language for people who wish to develop a Safe-C compiler.