Follow us on Google+ Follow us on Facebook Follow us on Twitter

Version 5 (modified by Jakub Jermář, 8 months ago) (diff)

Standard API

This document serves as an overview of HelenOS standard user space API implemented in HelenOS C library and the relation of this API to common standards such as "C Standard Library" (as defined by various ISO C standards, such as C99) and C POSIX Library standards.

General note: The primary aim of HelenOS C library is not to be 100% compatible with the standards. For both many fundamental reasons (HelenOS is not a unix-like operating system) and practical reasons (our subjective dislike of some aspects of the standards, security issues, etc.) the HelenOS C library follows the standards very loosely. Many functions are not implemented because lack of current need or simple because lack of manpower and many functions closely resemble their standard-compliant counterparts, but behave very slightly differently. In an increasing number of cases, a part of the legacy standard-compliant interfaces is replaced by HelenOS native ones.

Native Interfaces

Legacy Interfaces

dirent.h

Function Based on Std Compliant
closedir POSIX-1.2001 mostly
opendir POSIX-1-2001 mostly
readdir POSIX-1.2001 mostly
rewinddir POSIX-1.2001 mostly

stdio.h

Function Based on Std Compliant
clearerr POSIX-1.2001, C89, C99 mostly
fclose POSIX-1.2001, C89, C99 mostly
fdopen POSIX-1.2001 mostly
feof POSIX-1.2001, C89, C99 mostly
ferror POSIX-1.2001, C89, C99 mostly
fflush POSIX-1.2001, C89, C99 mostly
fgetc POSIX-1.2001, C89, C99 mostly
fgets POSIX-1.2001, C89, C99 mostly
fileno POSIX-1.2001 mostly
fopen POSIX-1.2001, C89, C99 mostly
fputc POSIX-1.2001, C89, C99 mostly
fputs POSIX-1.2001, C89, C99 mostly
fprintf POSIX-1.2001, C89, C99 mostly
fread POSIX-1.2001, C89, C99 mostly
freopen POSIX-1.2001, C89, C99 mostly
fseek POSIX-1.2001, C89, C99 mostly
ftell POSIX-1.2001, C89, C99 mostly
fwrite POSIX-1.2001, C89, C99 mostly
rewind POSIX-1.2001, C89, C99 mostly
setvbuf C89, C99 mostly
setbuf C89, C99 mostly
vfprintf POSIX-1.2001, C89, C99 mostly
ungetc POSIX-1.2001, C89, C99 mostly

unistd.h

Implemented functions (items marked wit D have been removed in the development version):

Function Based on Std Compliant Note
sleep POSIX.1-2001 mostly
usleep POSIX.1-2001 mostly obsoleted and replaced by nanosleep in POSIX.1-2008