Copyright (c) Hyperion Entertainment and contributors.

Difference between revisions of "Newlib Library"

From AmigaOS Documentation Wiki
Jump to navigation Jump to search
(Created page with "= Newlib Library = The built-in AmigaOS C library is a variant of the [http://sourceware.org/newlib/ Newlib C standard library] implementation. This section describes feature...")
 
Line 6: Line 6:
   
 
Newlib is a rather unique in that is uses a shared interface pointer name INewlib (struct Interface* type). This is only a concern when you are not using the standard C startup code and opening newlib.library directly. One consequence of using a shared interface pointer is that you must specify the NP_Child tag when using IDOS->CreateNewProc() if you child process is to share the parent process' newlib context information (e.g. stdin, stdout and stderr).
 
Newlib is a rather unique in that is uses a shared interface pointer name INewlib (struct Interface* type). This is only a concern when you are not using the standard C startup code and opening newlib.library directly. One consequence of using a shared interface pointer is that you must specify the NP_Child tag when using IDOS->CreateNewProc() if you child process is to share the parent process' newlib context information (e.g. stdin, stdout and stderr).
  +
  +
== Startup Code ==
  +
  +
The standard C startup code provides information on whether your application was launched from Workbench or the Shell console. Your program always starts using the standard '''argc''' and '''argv''' parameters:
  +
  +
<syntaxhighlight>
  +
int main(int argc, char **argv)
  +
</syntaxhighlight>
  +
  +
If '''argc''' is equal to zero that means the application was started from the Workbench. In this case, the '''argv''' parameter is a pointer to a struct WBStartup.
  +
  +
If '''argc''' is non-zero then it means the application was started from the Shell console and the normal C startup rules apply.

Revision as of 06:29, 8 March 2013

Newlib Library

The built-in AmigaOS C library is a variant of the Newlib C standard library implementation. This section describes features of Newlib which are unique to AmigaOS.

Shared Interface Pointer

Newlib is a rather unique in that is uses a shared interface pointer name INewlib (struct Interface* type). This is only a concern when you are not using the standard C startup code and opening newlib.library directly. One consequence of using a shared interface pointer is that you must specify the NP_Child tag when using IDOS->CreateNewProc() if you child process is to share the parent process' newlib context information (e.g. stdin, stdout and stderr).

Startup Code

The standard C startup code provides information on whether your application was launched from Workbench or the Shell console. Your program always starts using the standard argc and argv parameters:

int main(int argc, char **argv)

If argc is equal to zero that means the application was started from the Workbench. In this case, the argv parameter is a pointer to a struct WBStartup.

If argc is non-zero then it means the application was started from the Shell console and the normal C startup rules apply.