write_lp, write_LP, write_lpex

Write an lp model to a file or via a routine.

unsigned char write_LP(lprec *lp, FILE *stream);

unsigned char write_lp(lprec *lp, char *filename);

unsigned char write_lpex(lprec *lp, void *userhandle, (void *userhandle, char *buf) write_modeldata_routine);

Return Value

The routines return TRUE (1) if the operation was successful. A return value of FALSE (0) indicates an error.
write_LP and write_lp write in a file. write_lpex calls routine write_modeldata_routine to pass the data to that must be written. In this routine you can do anything you want with the data. Note that data is provided in undefined shrunks.
Note that row entry mode must be off, else this function also fails. See set_add_rowmode



Pointer to previously created lp model. See return value of make_lp, copy_lp, read_lp, read_LP, read_mps, read_freemps, read_MPS, read_freeMPS, read_XLI


Pointer to FILE structure.


Filename to write the lp model to.


Routine to write the lp model to. The routine has following definition:
typedef int (__WINAPI write_modeldata_func)(void *userhandle, char *buf);
userhandle is the second parameter passed to write_lpex
buf is a shrunk of data.


The write_lp and write_LP functions write the model to filename. write_LP needs a file pointer to an already opened file. write_lp accepts the name of the file. The latter function will generally be more convenient. write_lpex writes the model via a user defined routine.

When stream or filename are NULL, then output is written to output set by set_outputstream, set_outputfile. By default this is stdout.

The model in the file will be in lp-format.


#include <stdio.h>
#include <stdlib.h>
#include "lp_lib.h"
int main(void)
  lprec *lp;

  /* Create a new LP model */
  lp = make_lp(0, 0);
  if(lp == NULL) {
    fprintf(stderr, "Unable to create new LP model\n");

  write_lp(lp, "model.lp");


lp_solve API reference

See Also delete_lp, free_lp, make_lp, copy_lp, read_lp, read_LP, read_mps, read_freemps, read_MPS, read_freeMPS, read_XLI, write_mps, write_freemps, write_MPS, write_freeMPS, MPS_writefileex