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.


©Nokia 2007

Back to top


This material, including documentation and any related computer programs, is protected by copyright controlled by Nokia. All rights are reserved. Copying, including reproducing, storing, adapting or translating, any or all of this material requires the prior written consent of Nokia. This material also contains confidential information, which may not be disclosed to others without the prior written consent of Nokia.

Nokia is a registered trademark of Nokia Corporation. S60 and logo is a trademark of Nokia Corporation. Java and all Java-based marks are trademarks or registered trademarks of Sun Microsystems, Inc. Other company and product names mentioned herein may be trademarks or tradenames of their respective owners.