beautypg.com

Longjmp, Malloc, Longjmp malloc – Zilog EZ80F916 User Manual

Page 369

background image

UM014423-0607

C Standard Library

ZiLOG Developer Studio II

eZ80Acclaim!

®

User Manual

349

longjmp

Restores the environment saved by the most recent call to

setjmp

in the same invocation

of the program, with the corresponding jmp_buf argument. If there has been no such call,
or if the function containing the call to

setjmp

has executed a

return

statement in the

interim, the behavior is undefined.

All accessible objects have values as of the time

longjmp

was called, except that the val-

ues of objects of automatic storage class that do not have

volatile

type and have been

changed between the

setjmp

and

longjmp

call are indeterminate.

As it bypasses the usual function call and return mechanisms, the

longjmp

function exe-

cutes correctly in contexts of interrupts, signals, and any of their associated functions.
However, if the

longjmp

function is invoked from a nested signal handler (that is, from a

function invoked as a result of a signal raised during the handling of another signal), the
behavior is undefined.

Synopsis

#include
void longjmp(jmp_buf env, int val);

Returns

After

longjmp

is completed, program execution continues as if the corresponding call to

setjmp

had just returned the value specified by

val

. The

longjmp

function cannot cause

setjmp

to return the value 0; if val is 0,

setjmp

returns the value 1.

Example

int i;
jmp_buf env;
i=setjmp(env);
longjmp(env,i);

malloc

Allocates space for an object whose size is specified by

size

.

NOTE: The existing implementation of

malloc()

depends on the heap area being located from

the bottom of the heap (referred to by the symbol __heapbot) to the top of the stack (SP).
Care must be taken to avoid holes in this memory range. Otherwise, the

malloc()

function might not be able to allocate a valid memory object.

Synopsis

#include
void *malloc(size_t size);

This manual is related to the following products: