S60 Open C
Introduction to Open C

Introduction to Open C

Table of Contents

Limitations
Functions not implemented

 


Limitations

Some APIs of the standard C Library are not implemented because of the constraints or limitations of Symbian OS:

  • Open C does not support signals because a Symbian C++ thread cannot be made to execute a "signal handler" spontaneously.
  • Owing to the difference in the Symbian OS model (when compared to UNIX -like OS), fork( ) and exec( ) functions are not supported.
  • Since fork( ) and exec( ) are not supported, popen( ) is not complete. It will just create a child process and open a pipe between a parent and a child process either in read or write mode. It neither copies the address space to a child nor copies all the open descriptors in the parent process to the child.
  • wait( ) and waitpid( ) behave differently from the standard.
  • int dup2(int oldfd, int newfd); The return value of dup2 can be different from the one the developer expected it to be (newfd). So, the developer of dup2 should use the return value of dup2 as the new allocated fd rather than the one passed to dup2 (newfd). According to the standard, newfd and return values are the same, if dup2 is successful.
  • Some of the 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.
  • In case of Open C, libc will have its own console object maintained and all threads console I/O will be routed to the console. In case of a hybrid application, if the application creates one more console, then switching between these consoles will be a problem. The user may not be aware of this problem.
  • In case of an emulator, the developer can configure the window size dynamically. But the console maintained by Open C libc will remain the same. So, if the configuration is changed, data displayed on the console may not be aligned properly.
  • Even though some APIs likeopen( ), and fcntl( ) take both, two or three arguments, on Open C these APIs may not behave according to the standard when only 2 arguments are passed.
  • Since Symbian C++ does not support long double, math-related APIs that use long double might not have the desired precision.

More detailed information about the limitations can be found in the Open C API Reference documentation.

Give feedback of this section

 


Functions not implemented

To view the alphabetical index of non- implemented functions, click here.


Back to top


Copyright ©2008 Nokia Corporation. All rights reserved. This documentation can be used in the connection with this Product to help and support the user.