Please note that as of October 24, 2014, the Nokia Developer Wiki will no longer be accepting user contributions, including new entries, edits and comments, as we begin transitioning to our new home, in the Windows Phone Development Wiki. We plan to move over the majority of the existing entries over the next few weeks. Thanks for all your past and future contributions.
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.