---
name: "libscca"
section: "3"
platform: "linux"
package: "libscca-dev"
version: "20200717-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/libscca"
---

# libscca(3)

Library to access the Windows Prefetch File (PF) format

## NAME

**libscca.h** – Library to access the Windows Prefetch File (PF) format

## SYNOPSIS

**#include \<libscca.h\>**

Support functions

*const* *char* *\**\

**libscca\_get\_version**(*void*);

*int*\

**libscca\_get\_access\_flags\_read**(*void*);

*int*\

**libscca\_get\_codepage**(*int \*codepage*, *libscca\_error\_t \*\*error*);

*int*\

**libscca\_set\_codepage**(*int codepage*, *libscca\_error\_t \*\*error*);

*int*\

**libscca\_check\_file\_signature**(*const char \*filename*, *libscca\_error\_t \*\*error*);

Available when compiled with wide character string support:

*int*\

**libscca\_check\_file\_signature\_wide**(*const wchar\_t \*filename*, *libscca\_error\_t \*\*error*);

Available when compiled with libbfio support:

*int*\

**libscca\_check\_file\_signature\_file\_io\_handle**(*libbfio\_handle\_t \*file\_io\_handle*, *libscca\_error\_t \*\*error*);

Notify functions

*void*\

**libscca\_notify\_set\_verbose**(*int verbose*);

*int*\

**libscca\_notify\_set\_stream**(*FILE \*stream*, *libscca\_error\_t \*\*error*);

*int*\

**libscca\_notify\_stream\_open**(*const char \*filename*, *libscca\_error\_t \*\*error*);

*int*\

**libscca\_notify\_stream\_close**(*libscca\_error\_t \*\*error*);

Error functions

*void*\

**libscca\_error\_free**(*libscca\_error\_t \*\*error*);

*int*\

**libscca\_error\_fprint**(*libscca\_error\_t \*error*, *FILE \*stream*);

*int*\

**libscca\_error\_sprint**(*libscca\_error\_t \*error*, *char \*string*, *size\_t size*);

*int*\

**libscca\_error\_backtrace\_fprint**(*libscca\_error\_t \*error*, *FILE \*stream*);

*int*\

**libscca\_error\_backtrace\_sprint**(*libscca\_error\_t \*error*, *char \*string*, *size\_t size*);

File functions

*int*\

**libscca\_file\_initialize**(*libscca\_file\_t \*\*file*, *libscca\_error\_t \*\*error*);

*int*\

**libscca\_file\_free**(*libscca\_file\_t \*\*file*, *libscca\_error\_t \*\*error*);

*int*\

**libscca\_file\_signal\_abort**(*libscca\_file\_t \*file*, *libscca\_error\_t \*\*error*);

*int*\

**libscca\_file\_open**(*libscca\_file\_t \*file*, *const char \*filename*, *int access\_flags*, *libscca\_error\_t \*\*error*);

*int*\

**libscca\_file\_close**(*libscca\_file\_t \*file*, *libscca\_error\_t \*\*error*);

*int*\

**libscca\_file\_get\_format\_version**(*libscca\_file\_t \*file*, *uint32\_t \*format\_version*, *libscca\_error\_t \*\*error*);

*int*\

**libscca\_file\_get\_utf8\_executable\_filename\_size**(*libscca\_file\_t \*file*, *size\_t \*utf8\_string\_size*, *libscca\_error\_t \*\*error*);

*int*\

**libscca\_file\_get\_utf8\_executable\_filename**(*libscca\_file\_t \*file*, *uint8\_t \*utf8\_string*, *size\_t utf8\_string\_size*, *libscca\_error\_t \*\*error*);

*int*\

**libscca\_file\_get\_utf16\_executable\_filename\_size**(*libscca\_file\_t \*file*, *size\_t \*utf16\_string\_size*, *libscca\_error\_t \*\*error*);

*int*\

**libscca\_file\_get\_utf16\_executable\_filename**(*libscca\_file\_t \*file*, *uint16\_t \*utf16\_string*, *size\_t utf16\_string\_size*, *libscca\_error\_t \*\*error*);

*int*\

**libscca\_file\_get\_prefetch\_hash**(*libscca\_file\_t \*file*, *uint32\_t \*prefetch\_hash*, *libscca\_error\_t \*\*error*);

*int*\

**libscca\_file\_get\_last\_run\_time**(*libscca\_file\_t \*file*, *int last\_run\_time\_index*, *uint64\_t \*filetime*, *libscca\_error\_t \*\*error*);

*int*\

**libscca\_file\_get\_run\_count**(*libscca\_file\_t \*file*, *uint32\_t \*run\_count*, *libscca\_error\_t \*\*error*);

*int*\

**libscca\_file\_get\_number\_of\_file\_metrics\_entries**(*libscca\_file\_t \*file*, *int \*number\_of\_entries*, *libscca\_error\_t \*\*error*);

*int*\

**libscca\_file\_get\_file\_metrics\_entry**(*libscca\_file\_t \*file*, *int entry\_index*, *libscca\_file\_metrics\_t \*\*file\_metrics*, *libscca\_error\_t \*\*error*);

*int*\

**libscca\_file\_get\_number\_of\_filenames**(*libscca\_file\_t \*file*, *int \*number\_of\_filenames*, *libscca\_error\_t \*\*error*);

*int*\

**libscca\_file\_get\_utf8\_filename\_size**(*libscca\_file\_t \*file*, *int filename\_index*, *size\_t \*utf8\_string\_size*, *libscca\_error\_t \*\*error*);

*int*\

**libscca\_file\_get\_utf8\_filename**(*libscca\_file\_t \*file*, *int filename\_index*, *uint8\_t \*utf8\_string*, *size\_t utf8\_string\_size*, *libscca\_error\_t \*\*error*);

*int*\

**libscca\_file\_get\_utf16\_filename\_size**(*libscca\_file\_t \*file*, *int filename\_index*, *size\_t \*utf16\_string\_size*, *libscca\_error\_t \*\*error*);

*int*\

**libscca\_file\_get\_utf16\_filename**(*libscca\_file\_t \*file*, *int filename\_index*, *uint16\_t \*utf16\_string*, *size\_t utf16\_string\_size*, *libscca\_error\_t \*\*error*);

*int*\

**libscca\_file\_get\_number\_of\_volumes**(*libscca\_file\_t \*file*, *int \*number\_of\_volumes*, *libscca\_error\_t \*\*error*);

*int*\

**libscca\_file\_get\_volume\_information**(*libscca\_file\_t \*file*, *int volume\_index*, *libscca\_volume\_information\_t \*\*volume\_information*, *libscca\_error\_t \*\*error*);

Available when compiled with wide character string support:

*int*\

**libscca\_file\_open\_wide**(*libscca\_file\_t \*file*, *const wchar\_t \*filename*, *int access\_flags*, *libscca\_error\_t \*\*error*);

Available when compiled with libbfio support:

*int*\

**libscca\_file\_open\_file\_io\_handle**(*libscca\_file\_t \*file*, *libbfio\_handle\_t \*file\_io\_handle*, *int access\_flags*, *libscca\_error\_t \*\*error*);

File metrics functions

*int*\

**libscca\_file\_metrics\_free**(*libscca\_file\_metrics\_t \*\*file\_metrics*, *libscca\_error\_t \*\*error*);

*int*\

**libscca\_file\_metrics\_get\_utf8\_filename\_size**(*libscca\_file\_metrics\_t \*file\_metrics*, *size\_t \*utf8\_string\_size*, *libscca\_error\_t \*\*error*);

*int*\

**libscca\_file\_metrics\_get\_utf8\_filename**(*libscca\_file\_metrics\_t \*file\_metrics*, *uint8\_t \*utf8\_string*, *size\_t utf8\_string\_size*, *libscca\_error\_t \*\*error*);

*int*\

**libscca\_file\_metrics\_get\_utf16\_filename\_size**(*libscca\_file\_metrics\_t \*file\_metrics*, *size\_t \*utf16\_string\_size*, *libscca\_error\_t \*\*error*);

*int*\

**libscca\_file\_metrics\_get\_utf16\_filename**(*libscca\_file\_metrics\_t \*file\_metrics*, *uint16\_t \*utf16\_string*, *size\_t utf16\_string\_size*, *libscca\_error\_t \*\*error*);

*int*\

**libscca\_file\_metrics\_get\_file\_reference**(*libscca\_file\_metrics\_t \*file\_metrics*, *uint64\_t \*file\_reference*, *libscca\_error\_t \*\*error*);

Volume information functions

*int*\

**libscca\_volume\_information\_free**(*libscca\_volume\_information\_t \*\*volume\_information*, *libscca\_error\_t \*\*error*);

*int*\

**libscca\_volume\_information\_get\_creation\_time**(*libscca\_volume\_information\_t \*volume\_information*, *uint64\_t \*filetime*, *libscca\_error\_t \*\*error*);

*int*\

**libscca\_volume\_information\_get\_serial\_number**(*libscca\_volume\_information\_t \*volume\_information*, *uint32\_t \*serial\_number*, *libscca\_error\_t \*\*error*);

*int*\

**libscca\_volume\_information\_get\_utf8\_device\_path\_size**(*libscca\_volume\_information\_t \*volume\_information*, *size\_t \*utf8\_string\_size*, *libscca\_error\_t \*\*error*);

*int*\

**libscca\_volume\_information\_get\_utf8\_device\_path**(*libscca\_volume\_information\_t \*volume\_information*, *uint8\_t \*utf8\_string*, *size\_t utf8\_string\_size*, *libscca\_error\_t \*\*error*);

*int*\

**libscca\_volume\_information\_get\_utf16\_device\_path\_size**(*libscca\_volume\_information\_t \*volume\_information*, *size\_t \*utf16\_string\_size*, *libscca\_error\_t \*\*error*);

*int*\

**libscca\_volume\_information\_get\_utf16\_device\_path**(*libscca\_volume\_information\_t \*volume\_information*, *uint16\_t \*utf16\_string*, *size\_t utf16\_string\_size*, *libscca\_error\_t \*\*error*);

## DESCRIPTION

The **libscca\_get\_version**() function is used to retrieve the library version.

## RETURN VALUES

Most of the functions return NULL or -1 on error, dependent on the return type. For the actual return values see "libscca.h".

## ENVIRONMENT

None

## FILES

None

## NOTES

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

To compile libscca with wide character support use: *./configure* *--enable-wide-character-type=yes*\
  or define: *\_UNICODE*\
  or *UNICODE*\
  during compilation.

*LIBSCCA\_WIDE\_CHARACTER\_TYPE*\
  in libscca/features.h can be used to determine if libscca was compiled with wide character support.

## BUGS

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

## AUTHOR

These man pages are generated from "libscca.h".

## COPYRIGHT

Copyright (C) 2011-2020, Joachim Metz \<joachim.metz@gmail.com\>.

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

## SEE ALSO

the libscca.h include file
