&dhucpackage; &dhsection;

&funcname;

create a new Paradox file

#include <paradox.h>

int &funcname;(pxdoc_t *pxdoc, pxfield_t *fields, int numfields, FILE *fp, int type)

## DESCRIPTION

Creates a new Paradox document in an already open file with the given field specification. `pxdoc` must be created before with `PX_new(3)` or `PX_new2(3)`. The file must be opened in read/write mode (w+) with `fopen(3)`. `fields` is an array of `numfields` field specifications to set the schema of the database. The memory for the field specifications and field names must be allocated by the caller and may not be freed, since the memory is freed when the document is deleted. Make sure to use the same memory allocation function as passed to `PX_new(3)`. The memory for the field names is usually allocated with `PX_strdup(3)`. The field name can be left empty if a primary index file is to be created. The type of the file can be set in the last parameter. Currently only database (pxfFileTypIndexDB, pxfFileTypNonIndexDB) and primary index (pxfFileTypPrimIndex) files are supported.

After creating the paradox database you may want to call `PX_set_tablename(3)` in order to set the table name as it is stored in the header of the database.

## RETURN VALUE

Returns 0 on success and -1 on failure.

## SEE ALSO

PX_new2(3), PX_new(3), PX_create_file(3), PX_set_tablename(3)

## AUTHOR

This manual page was written by &dhusername; &dhemail;.