LIBQCOW(3) Library Functions Manual LIBQCOW(3)

# [NAME](#NAME)

`libqcow.h` — Library to access the QEMU Copy-On-Write (QCOW) image file format

# [SYNOPSIS](#SYNOPSIS)

`#include <libqcow.h>`

Support functions

```


const char *


libqcow_get_version(
void);
```

```


int


libqcow_get_access_flags_read(
void);
```

```


int


libqcow_get_access_flags_read_write(
void);
```

```


int


libqcow_get_access_flags_write(
void);
```

```


int


libqcow_get_codepage(
int *codepage,
libqcow_error_t **error);
```

```


int


libqcow_set_codepage(
int codepage,
libqcow_error_t **error);
```

```


int


libqcow_check_file_signature(
const char *filename,
libqcow_error_t **error);
```

Available when compiled with wide character string support:

```


int


libqcow_check_file_signature_wide(
const wchar_t *filename,
libqcow_error_t **error);
```

Available when compiled with libbfio support:

```


int


libqcow_check_file_signature_file_io_handle(
libbfio_handle_t *bfio_handle,
libqcow_error_t **error);
```

Notify functions

```


void


libqcow_notify_set_verbose(
int verbose);
```

```


int


libqcow_notify_set_stream(
FILE *stream,
libqcow_error_t **error);
```

```


int


libqcow_notify_stream_open(
const char *filename,
libqcow_error_t **error);
```

```


int


libqcow_notify_stream_close(
libqcow_error_t **error);
```

Error functions

```


void


libqcow_error_free(
libqcow_error_t **error);
```

```


int


libqcow_error_fprint(
libqcow_error_t *error,
FILE *stream);
```

```


int


libqcow_error_sprint(
libqcow_error_t *error,
char *string,
size_t size);
```

```


int


libqcow_error_backtrace_fprint(
libqcow_error_t *error,
FILE *stream);
```

```


int


libqcow_error_backtrace_sprint(
libqcow_error_t *error,
char *string,
size_t size);
```

File functions

```


int


libqcow_file_initialize(
libqcow_file_t **file,
libqcow_error_t **error);
```

```


int


libqcow_file_free(
libqcow_file_t **file,
libqcow_error_t **error);
```

```


int


libqcow_file_signal_abort(
libqcow_file_t *file,
libqcow_error_t **error);
```

```


int


libqcow_file_open(
libqcow_file_t *file,
const char *filename,
int access_flags,
libqcow_error_t **error);
```

```


int


libqcow_file_close(
libqcow_file_t *file,
libqcow_error_t **error);
```

```


int


libqcow_file_is_locked(
libqcow_file_t *file,
libqcow_error_t **error);
```

```


ssize_t


libqcow_file_read_buffer(
libqcow_file_t *file,
void *buffer,
size_t buffer_size,
libqcow_error_t **error);
```

```


ssize_t


libqcow_file_read_buffer_at_offset(
libqcow_file_t *file,
void *buffer,
size_t buffer_size,
off64_t offset,
libqcow_error_t **error);
```

```


off64_t


libqcow_file_seek_offset(
libqcow_file_t *file,
off64_t offset,
int whence,
libqcow_error_t **error);
```

```


int


libqcow_file_get_offset(
libqcow_file_t *file,
off64_t *offset,
libqcow_error_t **error);
```

```


int


libqcow_file_set_parent_file(
libqcow_file_t *file,
libqcow_file_t *parent_file,
libqcow_error_t **error);
```

```


int


libqcow_file_get_format_version(
libqcow_file_t *file,
uint32_t *format_version,
libqcow_error_t **error);
```

```


int


libqcow_file_get_encryption_method(
libqcow_file_t *file,
uint32_t *encryption_method,
libqcow_error_t **error);
```

```


int


libqcow_file_set_keys(
libqcow_file_t *file,
const uint8_t *key,
size_t key_size,
libqcow_error_t **error);
```

```


int


libqcow_file_set_utf8_password(
libqcow_file_t *file,
const uint8_t *utf8_string,
size_t utf8_string_length,
libqcow_error_t **error);
```

```


int


libqcow_file_set_utf16_password(
libqcow_file_t *file,
const uint16_t *utf16_string,
size_t utf16_string_length,
libqcow_error_t **error);
```

```


int


libqcow_file_get_media_size(
libqcow_file_t *file,
size64_t *media_size,
libqcow_error_t **error);
```

```


int


libqcow_file_get_utf8_backing_filename_size(
libqcow_file_t *file,
size_t *utf8_string_size,
libqcow_error_t **error);
```

```


int


libqcow_file_get_utf8_backing_filename(
libqcow_file_t *file,
uint8_t *utf8_string,
size_t utf8_string_size,
libqcow_error_t **error);
```

```


int


libqcow_file_get_utf16_backing_filename_size(
libqcow_file_t *file,
size_t *utf16_string_size,
libqcow_error_t **error);
```

```


int


libqcow_file_get_utf16_backing_filename(
libqcow_file_t *file,
uint16_t *utf16_string,
size_t utf16_string_size,
libqcow_error_t **error);
```

```


int


libqcow_file_get_number_of_snapshots(
libqcow_file_t *file,
int *number_of_snapshots,
libqcow_error_t **error);
```

Available when compiled with wide character string support:

```


int


libqcow_file_open_wide(
libqcow_file_t *file,
const wchar_t *filename,
int access_flags,
libqcow_error_t **error);
```

Available when compiled with libbfio support:

```


int


libqcow_file_open_file_io_handle(
libqcow_file_t *file,
libbfio_handle_t *file_io_handle,
int access_flags,
libqcow_error_t **error);
```

# [DESCRIPTION](#DESCRIPTION)

The [`libqcow_get_version`](#libqcow_get_version)() function is used to retrieve the library version.

# [RETURN VALUES](#RETURN_VALUES)

Most of the functions return NULL or -1 on error, dependent on the return type. For the actual return values see `<libqcow.h>`.

# [ENVIRONMENT](#ENVIRONMENT)

None

# [FILES](#FILES)

None

# [NOTES](#NOTES)

libqcow can be compiled with wide character support (wchar\_t).

To compile libqcow with wide character support use: `./configure --enable-wide-character-type`  
or define: `_UNICODE`  
or `UNICODE`  
during compilation.

`LIBQCOW_WIDE_CHARACTER_TYPE`  
in libqcow/features.h can be used to determine if libqcow was compiled with wide character support.

# [SEE ALSO](#SEE_ALSO)

`<libqcow.h>`

# [AUTHORS](#AUTHORS)

Joachim Metz &lt;joachim.metz@gmail.com&gt;

# [BUGS](#BUGS)

Please report bugs of any kind on the project issue tracker: https://github.com/libyal/libqcow/issues

# [COPYRIGHT](#COPYRIGHT)

Copyright (C) 2010-2026, Joachim Metz &lt;joachim.metz@gmail.com&gt;.

This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

June 26, 2026 Linux 4.19.0-gvisor

---

Document: libqcow(3) from libqcow 20260703-r2 (Chainguard OS)
Source: https://github.com/libyal/libqcow
