Limitations of Open C
Every technology which is in development has their own limitations, so do Open C.
Some limitations of Open C (considering the present status) are listed below:
- No support for IPv6. (This may affect a lot VoIP solutions).
- fork() and exec() functions are not supported.
- As mentioned above, fork() and exec() are not supported, so, popen() is not complete. This function just creates a child process and opens a pipe between a parent and a child process, either in read or write mode. It does not copy the address space to a child, nor copies all the open descriptors in the parent process to the child.
- Some APIs of Open C assume that a cleanup stack is created and there is a top-level TRAP for the current thread. All the threads created using RThread::Create should create them explicitly.
- One more important missing thing is that Open C does not support "signals", because a Symbian C++ thread cannot be made to execute a "signal handler" spontaneously.
- It is not possible to create a file with write only permission (Symbian OS does not support it).
The following functionalities are not supported by libc, due to platform limitations:
- popen (only partial support)
- wait() and waitpid() behave differently from the standard.
- dup2 will return the duped fd as the return value of dup2 so do not use newfd as a valid one. It may not be the valid fd.