extern "C" void * cygwin_create_path(what,  
cygwin_conv_path_t what;
const void * from;

This is equivalent to the cygwin_conv_path, except that cygwin_create_path does not take a buffer pointer for the result of the conversion as input. Rather it allocates the buffer itself using malloc(3) and returns a pointer to this buffer. In case of error it returns NULL and sets errno to one of the values defined for cygwin_conv_path. Additionally errno can be set to the below value.

    ENOMEM        Insufficient memory was available.

When you don't need the returned buffer anymore, use free(3) to deallocate it.

See also cygwin_conv_path