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 :
aes | AES cryption |
arithm | simple arithmetic (abs, min, max) |
base64 | base64 encoding |
bintree | balanced binary trees (AVL) |
calendar | calender |
console | writing/reading on the dos console box |
crc | md5, sha2, adler and crc checksums |
db | database (insert/delete/update/retrieve, transations on .db files - documentation) |
des | DES cryption |
directx | layer for using DirectX 10 & 11 |
draw | draw in a memory buffer (line, circle, text, image) |
exception | exception handling |
files | text and binary files, directories, disk. |
ftp | file transfer protocol (ftp) - client and server |
gui | graphic user interface (windows, listboxes, etc ..) with a main window using component directx |
hash | hash table, dictionary (key to value) |
http | internet client and serveur (login, virtual html pages, ..) |
image | compression and decompression (jpg, gif, png, ..), image treatment |
inifile | reading of .ini files |
integer | operations on large unsigned integers |
linear_algebra | operations on vectors and matrices |
math | math functions (sin, cos, ..) |
netcard | information about network cards (windows-specific) |
odbc | interface to sql databases using odbc 3.0 |
opus | audio codec (see http://www.opus-codec.org/) |
create PDF files | |
printer | printer |
random | generation of random numbers |
registry | read/write a key from registry (windows-specific) |
rsa | asymmetric encryption |
service | Windows Services - background processes (windows-specific) |
shortcut | program installation, create a shortcut on desktop |
smtp | sending e-mails using protocol smtp |
sorting | sorting of arrays (bubblesort, heapsort, quicksort) |
sound | microphone and speaker |
strings | characters and strings (strcpy, sprintf, ..) |
system | system information (PC name, memory, nb of CPUs) |
tcpip | network connection by tcpip (ipv4 and ipv6) |
text | storage of a text composed of lines |
thread | parallel threads, synchronisation, timers |
tracing | trace files |
url | internet url |
utf | conversion between ascii, utf-8 and utf-16 |
vpeg | video compression for nearly static images |
webcam | interface for video source |
win | user interface to create windows, buttons, listboxes, .. |
xml | xml reader |
zip | data compression : zip, unzip |
win/windows | low-level interface with Windows |
win/directx11 | low-level interface with DirectX 11 |
win/direct_show | 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.