Chapter Contents |
Previous |
Next |
strsave |
Portability: | SAS/C extension |
SYNOPSIS | |
DESCRIPTION | |
RETURN VALUE | |
ERRORS | |
CAUTION | |
EXAMPLE | |
RELATED FUNCTIONS | |
SEE ALSO |
SYNOPSIS |
#include <lcstring.h> char *strsave(const char *str);
DESCRIPTION |
strsave
allocates a private copy of a character string (using the
malloc
function).
RETURN VALUE |
strsave
returns the address of the copy of the string, or
NULL
if no memory is available for a copy.
ERRORS |
User ABEND 1205 and 1206 may occur if memory management data areas have been overlaid.
CAUTION |
A protection or addressing exception may occur if the argument string is not properly terminated.
The copy should be released by a call to
free
when it is no longer required.
EXAMPLE |
#include <lcstring.h> #include <stdio.h> static char *filename; static int couldopen(void); main() { if (couldopen() == 0) printf("The file "%s" was opened successfully.\n", filename); else printf("The file "%s" was not opened successfully.\n", filename); return; } int couldopen(void) { char buf[FILENAME_MAX]; FILE *f; puts("Enter a file name:"); gets(buf); filename = strsave(buf); /* Save the file name. Because */ /* buf is auto, saving the */ /* address of buf is not safe. */ f = fopen(buf, "r"); if (f){ fclose(f); return 0; /* success */ } else return -1; /* failure */ }
RELATED FUNCTIONS |
SEE ALSO |
Chapter Contents |
Previous |
Next |
Top of Page |
Copyright © 2001 by SAS Institute Inc., Cary, NC, USA. All rights reserved.