man pages section 3: Extended Library Functions, Volume 2

Exit Print View

Updated: July 2014
 
 

copylist(3GEN)

Name

copylist - copy a file into memory

Synopsis

cc [ flag ... ] file ... –lgen [ library ... ]
#include <libgen.h>

char *copylist(const char *filenm, off_t *szptr);

Description

The copylist() function copies a list of items from a file into freshly allocated memory, replacing new-lines with null characters. It expects two arguments: a pointer filenm to the name of the file to be copied, and a pointer szptr to a variable where the size of the file will be stored.

Upon success, copylist() returns a pointer to the memory allocated. Otherwise it returns NULL if it has trouble finding the file, calling malloc(), or reading the file.

Usage

The copylist() function has a transitional interface for 64-bit file offsets. See lf64 (5).

Examples

Example 1 Example of copylist() function.
/* read "file" into buf */
off_t size;
char *buf;
buf = copylist("file", &size);
if (buf) {
	for (i=0; i<size; i++)
		if (buf[i])
			putchar(buf[i]);
		else
			putchar('\n');
	}
} else {
	fprintf(stderr, "%s: Copy failed for "file".\n", argv[0]);
	exit (1);
}

Attributes

See attributes(5) for descriptions of the following attributes:

ATTRIBUTE TYPE
ATTRIBUTE VALUE
MT-Level
MT-Safe

See also

malloc(3C), attributes(5), lf64(5)

Notes

When compiling multithreaded applications, the _REENTRANT flag must be defined on the compile line. This flag should only be used in multithreaded applications.