.TH semanage_fcontext 3 "16 March 2006" "ivg2@cornell.edu" "Libsemanage API documentation"

.SH "NAME" 
semanage_fcontext \- SELinux File Context Management API

.SH "SYNOPSIS"
.B #include <semanage/fcontext_record.h>
.br
.B #include <semanage/fcontexts_policy.h>
.br
.B #include <semanage/fcontexts_local.h>

.PP
This object contains properties associated with a SELinux file context specification

.PP
For details on a specific function, see its manual page.

.SH "Record API Overview"

.HP 
.BR semanage_fcontext_create "(3)" \- 
.br
create a file context spec

.HP
.BR semanage_fcontext_free "(3)" \-
.br
release resources for this file context spec 

.HP
.BR semanage_fcontext_key_create "(3)" \-
.br
create a key, which can be used to identify a file context spec

.HP
.BR semanage_fcontext_key_free "(3)" \-
.br
release resources for this file context spec key

.HP
.BR semanage_fcontext_key_extract "(3)" \- 
.br
create a key matching this file context spec 

.HP
.BR semanage_fcontext_clone "(3)" \- 
.br
create an identical file context spec (deep-copy clone)

.HP
.BR semanage_fcontext_compare "(3)" \- 
.br
compare this file context spec to the provided key

.HP
.BR semanage_fcontext_compare2 "(3)" \-
.br
compare this file context spec to another


.SH "Properties API Overview"

.HP
.BR semanage_fcontext_get_expr "(3)" \-
.br
return the regular expression for this file context spec

.HP
.BR semanage_fcontext_set_expr "(3)" \-
.br
set the regular expression for this file context spec

.HP
.BR semanage_fcontext_get_type "(3)" \-
.br
return the file type for this file context spec

.HP
.BR semanage_fcontext_get_type_str "(3)" \-
.br
return a string representation for this file context spec type

.HP
.BR semanage_fcontext_set_type "(3)" \-
.br
set the file type for this file context spec

.HP
.BR semanage_fcontext_get_con "(3)" \-
.br
return the SELinux context for this file context spec

.HP
.BR semanage_fcontext_set_expr "(3)" \-
.br
set the SELinux context for this file context spec


.SH "Record Store API Overview"

.HP
.BR semanage_fcontext_modify_local "(3)" \- 
.br
add or update a file context spec in the local store

.HP
.BR semanage_fcontext_del_local "(3)" \-
.br
delete a file context spec from the local store

.HP
.BR semanage_fcontext_exists "(3)" \-
.br
check if a file context spec is defined in the persistent policy

.HP
.BR semanage_fcontext_exists_local "(3)" \-
.br
check if a file context spec is defined in the local store

.HP
.BR semanage_fcontext_query "(3)" \-
.br
query a file context spec in the persistent policy

.HP
.BR semanage_fcontext_query_local "(3)" \- 
.br
query a file context spec in the local store

.HP
.BR semanage_fcontext_count "(3)" \-
.br
count the number of file context specs defined in the persistent policy

.HP
.BR semanage_fcontext_count_local "(3)" \-
.br
count the number of file context specs defined in the local store

.HP
.BR semanage_fcontext_iterate "(3)" \-
.br
execute a callback for each file context spec in the persistent policy

.HP
.BR semanage_fcontext_iterate_local "(3)" \-
.br
execute a callback for each file context spec in the local store

.HP
.BR semanage_fcontext_list "(3)" \-
.br
return an array containing all file context specs in the persistent policy

.HP
.BR semanage_fcontext_list_local "(3)" \-
.br
return an array containing all file context specs in the local store
