<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html xmlns:fn="http://www.w3.org/2005/02/xpath-functions"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <link rel="stylesheet" href="../../../doc/otp_doc.css" type="text/css"> <title>Erlang -- zlib</title> </head> <body bgcolor="white" text="#000000" link="#0000ff" vlink="#ff00ff" alink="#ff0000"><div id="container"> <script id="js" type="text/javascript" language="JavaScript" src="../../../doc/js/flipmenu/flipmenu.js"></script><script id="js2" type="text/javascript" src="../../../doc/js/erlresolvelinks.js"></script><script language="JavaScript" type="text/javascript"> <!-- function getWinHeight() { var myHeight = 0; if( typeof( window.innerHeight ) == 'number' ) { //Non-IE myHeight = window.innerHeight; } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) { //IE 6+ in 'standards compliant mode' myHeight = document.documentElement.clientHeight; } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) { //IE 4 compatible myHeight = document.body.clientHeight; } return myHeight; } function setscrollpos() { var objf=document.getElementById('loadscrollpos'); document.getElementById("leftnav").scrollTop = objf.offsetTop - getWinHeight()/2; } function addEvent(obj, evType, fn){ if (obj.addEventListener){ obj.addEventListener(evType, fn, true); return true; } else if (obj.attachEvent){ var r = obj.attachEvent("on"+evType, fn); return r; } else { return false; } } addEvent(window, 'load', setscrollpos); //--></script><div id="leftnav"><div class="innertube"> <img alt="Erlang logo" src="../../../doc/erlang-logo.png"><br><small><a href="users_guide.html">User's Guide</a><br><a href="index.html">Reference Manual</a><br><a href="release_notes.html">Release Notes</a><br><a href="../pdf/erts-5.8.5.pdf">PDF</a><br><a href="../../../doc/index.html">Top</a></small><p><strong>Erlang Run-Time System Application (ERTS)</strong><br><strong>Reference Manual</strong><br><small>Version 5.8.5</small></p> <br><a href="javascript:openAllFlips()">Expand All</a><br><a href="javascript:closeAllFlips()">Contract All</a><p><small><strong>Table of Contents</strong></small></p> <ul class="flipMenu"> <li id="no" title="erl_prim_loader " expanded="false">erl_prim_loader<ul> <li><a href="erl_prim_loader.html"> Top of manual page </a></li> <li title="start-3"><a href="erl_prim_loader.html#start-3">start/3</a></li> <li title="get_file-1"><a href="erl_prim_loader.html#get_file-1">get_file/1</a></li> <li title="get_path-0"><a href="erl_prim_loader.html#get_path-0">get_path/0</a></li> <li title="list_dir-1"><a href="erl_prim_loader.html#list_dir-1">list_dir/1</a></li> <li title="read_file_info-1"><a href="erl_prim_loader.html#read_file_info-1">read_file_info/1</a></li> <li title="set_path-1"><a href="erl_prim_loader.html#set_path-1">set_path/1</a></li> </ul> </li> <li id="no" title="erlang " expanded="false">erlang<ul> <li><a href="erlang.html"> Top of manual page </a></li> <li title="abs-1"><a href="erlang.html#abs-1">abs/1</a></li> <li title="adler32-1"><a href="erlang.html#adler32-1">adler32/1</a></li> <li title="adler32-2"><a href="erlang.html#adler32-2">adler32/2</a></li> <li title="adler32_combine-3"><a href="erlang.html#adler32_combine-3">adler32_combine/3</a></li> <li title="append_element-2"><a href="erlang.html#append_element-2">append_element/2</a></li> <li title="apply-2"><a href="erlang.html#apply-2">apply/2</a></li> <li title="apply-3"><a href="erlang.html#apply-3">apply/3</a></li> <li title="atom_to_binary-2"><a href="erlang.html#atom_to_binary-2">atom_to_binary/2</a></li> <li title="atom_to_list-1"><a href="erlang.html#atom_to_list-1">atom_to_list/1</a></li> <li title="binary_part-2"><a href="erlang.html#binary_part-2">binary_part/2</a></li> <li title="binary_part-3"><a href="erlang.html#binary_part-3">binary_part/3</a></li> <li title="binary_to_atom-2"><a href="erlang.html#binary_to_atom-2">binary_to_atom/2</a></li> <li title="binary_to_existing_atom-2"><a href="erlang.html#binary_to_existing_atom-2">binary_to_existing_atom/2</a></li> <li title="binary_to_list-1"><a href="erlang.html#binary_to_list-1">binary_to_list/1</a></li> <li title="binary_to_list-3"><a href="erlang.html#binary_to_list-3">binary_to_list/3</a></li> <li title="bitstring_to_list-1"><a href="erlang.html#bitstring_to_list-1">bitstring_to_list/1</a></li> <li title="binary_to_term-1"><a href="erlang.html#binary_to_term-1">binary_to_term/1</a></li> <li title="binary_to_term-2"><a href="erlang.html#binary_to_term-2">binary_to_term/2</a></li> <li title="bit_size-1"><a href="erlang.html#bit_size-1">bit_size/1</a></li> <li title="bump_reductions-1"><a href="erlang.html#bump_reductions-1">bump_reductions/1</a></li> <li title="byte_size-1"><a href="erlang.html#byte_size-1">byte_size/1</a></li> <li title="cancel_timer-1"><a href="erlang.html#cancel_timer-1">cancel_timer/1</a></li> <li title="check_old_code-1"><a href="erlang.html#check_old_code-1">check_old_code/1</a></li> <li title="check_process_code-2"><a href="erlang.html#check_process_code-2">check_process_code/2</a></li> <li title="concat_binary-1"><a href="erlang.html#concat_binary-1">concat_binary/1</a></li> <li title="crc32-1"><a href="erlang.html#crc32-1">crc32/1</a></li> <li title="crc32-2"><a href="erlang.html#crc32-2">crc32/2</a></li> <li title="crc32_combine-3"><a href="erlang.html#crc32_combine-3">crc32_combine/3</a></li> <li title="date-0"><a href="erlang.html#date-0">date/0</a></li> <li title="decode_packet-3"><a href="erlang.html#decode_packet-3">decode_packet/3</a></li> <li title="delete_module-1"><a href="erlang.html#delete_module-1">delete_module/1</a></li> <li title="demonitor-1"><a href="erlang.html#demonitor-1">demonitor/1</a></li> <li title="demonitor-2"><a href="erlang.html#demonitor-2">demonitor/2</a></li> <li title="disconnect_node-1"><a href="erlang.html#disconnect_node-1">disconnect_node/1</a></li> <li title="display-1"><a href="erlang.html#display-1">display/1</a></li> <li title="element-2"><a href="erlang.html#element-2">element/2</a></li> <li title="erase-0"><a href="erlang.html#erase-0">erase/0</a></li> <li title="erase-1"><a href="erlang.html#erase-1">erase/1</a></li> <li title="error-1"><a href="erlang.html#error-1">error/1</a></li> <li title="error-2"><a href="erlang.html#error-2">error/2</a></li> <li title="exit-1"><a href="erlang.html#exit-1">exit/1</a></li> <li title="exit-2"><a href="erlang.html#exit-2">exit/2</a></li> <li title="external_size-1"><a href="erlang.html#external_size-1">external_size/1</a></li> <li title="external_size-2"><a href="erlang.html#external_size-2">external_size/2</a></li> <li title="float-1"><a href="erlang.html#float-1">float/1</a></li> <li title="float_to_list-1"><a href="erlang.html#float_to_list-1">float_to_list/1</a></li> <li title="fun_info-1"><a href="erlang.html#fun_info-1">fun_info/1</a></li> <li title="fun_info-2"><a href="erlang.html#fun_info-2">fun_info/2</a></li> <li title="fun_to_list-1"><a href="erlang.html#fun_to_list-1">fun_to_list/1</a></li> <li title="function_exported-3"><a href="erlang.html#function_exported-3">function_exported/3</a></li> <li title="garbage_collect-0"><a href="erlang.html#garbage_collect-0">garbage_collect/0</a></li> <li title="garbage_collect-1"><a href="erlang.html#garbage_collect-1">garbage_collect/1</a></li> <li title="get-0"><a href="erlang.html#get-0">get/0</a></li> <li title="get-1"><a href="erlang.html#get-1">get/1</a></li> <li title="get_cookie-0"><a href="erlang.html#get_cookie-0">get_cookie/0</a></li> <li title="get_keys-1"><a href="erlang.html#get_keys-1">get_keys/1</a></li> <li title="get_stacktrace-0"><a href="erlang.html#get_stacktrace-0">get_stacktrace/0</a></li> <li title="group_leader-0"><a href="erlang.html#group_leader-0">group_leader/0</a></li> <li title="group_leader-2"><a href="erlang.html#group_leader-2">group_leader/2</a></li> <li title="halt-0"><a href="erlang.html#halt-0">halt/0</a></li> <li title="halt-1"><a href="erlang.html#halt-1">halt/1</a></li> <li title="hash-2"><a href="erlang.html#hash-2">hash/2</a></li> <li title="hd-1"><a href="erlang.html#hd-1">hd/1</a></li> <li title="hibernate-3"><a href="erlang.html#hibernate-3">hibernate/3</a></li> <li title="integer_to_list-1"><a href="erlang.html#integer_to_list-1">integer_to_list/1</a></li> <li title="integer_to_list-2"><a href="erlang.html#integer_to_list-2">integer_to_list/2</a></li> <li title="iolist_to_binary-1"><a href="erlang.html#iolist_to_binary-1">iolist_to_binary/1</a></li> <li title="iolist_size-1"><a href="erlang.html#iolist_size-1">iolist_size/1</a></li> <li title="is_alive-0"><a href="erlang.html#is_alive-0">is_alive/0</a></li> <li title="is_atom-1"><a href="erlang.html#is_atom-1">is_atom/1</a></li> <li title="is_binary-1"><a href="erlang.html#is_binary-1">is_binary/1</a></li> <li title="is_bitstring-1"><a href="erlang.html#is_bitstring-1">is_bitstring/1</a></li> <li title="is_boolean-1"><a href="erlang.html#is_boolean-1">is_boolean/1</a></li> <li title="is_builtin-3"><a href="erlang.html#is_builtin-3">is_builtin/3</a></li> <li title="is_float-1"><a href="erlang.html#is_float-1">is_float/1</a></li> <li title="is_function-1"><a href="erlang.html#is_function-1">is_function/1</a></li> <li title="is_function-2"><a href="erlang.html#is_function-2">is_function/2</a></li> <li title="is_integer-1"><a href="erlang.html#is_integer-1">is_integer/1</a></li> <li title="is_list-1"><a href="erlang.html#is_list-1">is_list/1</a></li> <li title="is_number-1"><a href="erlang.html#is_number-1">is_number/1</a></li> <li title="is_pid-1"><a href="erlang.html#is_pid-1">is_pid/1</a></li> <li title="is_port-1"><a href="erlang.html#is_port-1">is_port/1</a></li> <li title="is_process_alive-1"><a href="erlang.html#is_process_alive-1">is_process_alive/1</a></li> <li title="is_record-2"><a href="erlang.html#is_record-2">is_record/2</a></li> <li title="is_record-3"><a href="erlang.html#is_record-3">is_record/3</a></li> <li title="is_reference-1"><a href="erlang.html#is_reference-1">is_reference/1</a></li> <li title="is_tuple-1"><a href="erlang.html#is_tuple-1">is_tuple/1</a></li> <li title="length-1"><a href="erlang.html#length-1">length/1</a></li> <li title="link-1"><a href="erlang.html#link-1">link/1</a></li> <li title="list_to_atom-1"><a href="erlang.html#list_to_atom-1">list_to_atom/1</a></li> <li title="list_to_binary-1"><a href="erlang.html#list_to_binary-1">list_to_binary/1</a></li> <li title="list_to_bitstring-1"><a href="erlang.html#list_to_bitstring-1">list_to_bitstring/1</a></li> <li title="list_to_existing_atom-1"><a href="erlang.html#list_to_existing_atom-1">list_to_existing_atom/1</a></li> <li title="list_to_float-1"><a href="erlang.html#list_to_float-1">list_to_float/1</a></li> <li title="list_to_integer-1"><a href="erlang.html#list_to_integer-1">list_to_integer/1</a></li> <li title="list_to_integer-2"><a href="erlang.html#list_to_integer-2">list_to_integer/2</a></li> <li title="list_to_pid-1"><a href="erlang.html#list_to_pid-1">list_to_pid/1</a></li> <li title="list_to_tuple-1"><a href="erlang.html#list_to_tuple-1">list_to_tuple/1</a></li> <li title="load_module-2"><a href="erlang.html#load_module-2">load_module/2</a></li> <li title="load_nif-2"><a href="erlang.html#load_nif-2">load_nif/2</a></li> <li title="loaded-0"><a href="erlang.html#loaded-0">loaded/0</a></li> <li title="localtime-0"><a href="erlang.html#localtime-0">localtime/0</a></li> <li title="localtime_to_universaltime-1"><a href="erlang.html#localtime_to_universaltime-1">localtime_to_universaltime/1</a></li> <li title="localtime_to_universaltime-2"><a href="erlang.html#localtime_to_universaltime-2">localtime_to_universaltime/2</a></li> <li title="make_ref-0"><a href="erlang.html#make_ref-0">make_ref/0</a></li> <li title="make_tuple-2"><a href="erlang.html#make_tuple-2">make_tuple/2</a></li> <li title="make_tuple-3"><a href="erlang.html#make_tuple-3">make_tuple/3</a></li> <li title="max-2"><a href="erlang.html#max-2">max/2</a></li> <li title="md5-1"><a href="erlang.html#md5-1">md5/1</a></li> <li title="md5_final-1"><a href="erlang.html#md5_final-1">md5_final/1</a></li> <li title="md5_init-0"><a href="erlang.html#md5_init-0">md5_init/0</a></li> <li title="md5_update-2"><a href="erlang.html#md5_update-2">md5_update/2</a></li> <li title="memory-0"><a href="erlang.html#memory-0">memory/0</a></li> <li title="memory-1"><a href="erlang.html#memory-1">memory/1</a></li> <li title="min-2"><a href="erlang.html#min-2">min/2</a></li> <li title="module_loaded-1"><a href="erlang.html#module_loaded-1">module_loaded/1</a></li> <li title="monitor-2"><a href="erlang.html#monitor-2">monitor/2</a></li> <li title="monitor_node-2"><a href="erlang.html#monitor_node-2">monitor_node/2</a></li> <li title="monitor_node-3"><a href="erlang.html#monitor_node-3">monitor_node/3</a></li> <li title="nif_error-1"><a href="erlang.html#nif_error-1">nif_error/1</a></li> <li title="nif_error-2"><a href="erlang.html#nif_error-2">nif_error/2</a></li> <li title="node-0"><a href="erlang.html#node-0">node/0</a></li> <li title="node-1"><a href="erlang.html#node-1">node/1</a></li> <li title="nodes-0"><a href="erlang.html#nodes-0">nodes/0</a></li> <li title="nodes-1"><a href="erlang.html#nodes-1">nodes/1</a></li> <li title="now-0"><a href="erlang.html#now-0">now/0</a></li> <li title="open_port-2"><a href="erlang.html#open_port-2">open_port/2</a></li> <li title="phash-2"><a href="erlang.html#phash-2">phash/2</a></li> <li title="phash2-1"><a href="erlang.html#phash2-1">phash2/1</a></li> <li title="pid_to_list-1"><a href="erlang.html#pid_to_list-1">pid_to_list/1</a></li> <li title="port_close-1"><a href="erlang.html#port_close-1">port_close/1</a></li> <li title="port_command-2"><a href="erlang.html#port_command-2">port_command/2</a></li> <li title="port_command-3"><a href="erlang.html#port_command-3">port_command/3</a></li> <li title="port_connect-2"><a href="erlang.html#port_connect-2">port_connect/2</a></li> <li title="port_control-3"><a href="erlang.html#port_control-3">port_control/3</a></li> <li title="port_call-3"><a href="erlang.html#port_call-3">port_call/3</a></li> <li title="port_info-1"><a href="erlang.html#port_info-1">port_info/1</a></li> <li title="port_info-2"><a href="erlang.html#port_info-2">port_info/2</a></li> <li title="port_to_list-1"><a href="erlang.html#port_to_list-1">port_to_list/1</a></li> <li title="ports-0"><a href="erlang.html#ports-0">ports/0</a></li> <li title="pre_loaded-0"><a href="erlang.html#pre_loaded-0">pre_loaded/0</a></li> <li title="process_display-2"><a href="erlang.html#process_display-2">process_display/2</a></li> <li title="process_flag-2"><a href="erlang.html#process_flag-2">process_flag/2</a></li> <li title="process_flag-3"><a href="erlang.html#process_flag-3">process_flag/3</a></li> <li title="process_info-1"><a href="erlang.html#process_info-1">process_info/1</a></li> <li title="process_info-2"><a href="erlang.html#process_info-2">process_info/2</a></li> <li title="processes-0"><a href="erlang.html#processes-0">processes/0</a></li> <li title="purge_module-1"><a href="erlang.html#purge_module-1">purge_module/1</a></li> <li title="put-2"><a href="erlang.html#put-2">put/2</a></li> <li title="raise-3"><a href="erlang.html#raise-3">raise/3</a></li> <li title="read_timer-1"><a href="erlang.html#read_timer-1">read_timer/1</a></li> <li title="ref_to_list-1"><a href="erlang.html#ref_to_list-1">ref_to_list/1</a></li> <li title="register-2"><a href="erlang.html#register-2">register/2</a></li> <li title="registered-0"><a href="erlang.html#registered-0">registered/0</a></li> <li title="resume_process-1"><a href="erlang.html#resume_process-1">resume_process/1</a></li> <li title="round-1"><a href="erlang.html#round-1">round/1</a></li> <li title="self-0"><a href="erlang.html#self-0">self/0</a></li> <li title="send-2"><a href="erlang.html#send-2">send/2</a></li> <li title="send-3"><a href="erlang.html#send-3">send/3</a></li> <li title="send_after-3"><a href="erlang.html#send_after-3">send_after/3</a></li> <li title="send_nosuspend-2"><a href="erlang.html#send_nosuspend-2">send_nosuspend/2</a></li> <li title="send_nosuspend-3"><a href="erlang.html#send_nosuspend-3">send_nosuspend/3</a></li> <li title="set_cookie-2"><a href="erlang.html#set_cookie-2">set_cookie/2</a></li> <li title="setelement-3"><a href="erlang.html#setelement-3">setelement/3</a></li> <li title="size-1"><a href="erlang.html#size-1">size/1</a></li> <li title="spawn-1"><a href="erlang.html#spawn-1">spawn/1</a></li> <li title="spawn-2"><a href="erlang.html#spawn-2">spawn/2</a></li> <li title="spawn-3"><a href="erlang.html#spawn-3">spawn/3</a></li> <li title="spawn-4"><a href="erlang.html#spawn-4">spawn/4</a></li> <li title="spawn_link-1"><a href="erlang.html#spawn_link-1">spawn_link/1</a></li> <li title="spawn_link-2"><a href="erlang.html#spawn_link-2">spawn_link/2</a></li> <li title="spawn_link-3"><a href="erlang.html#spawn_link-3">spawn_link/3</a></li> <li title="spawn_link-4"><a href="erlang.html#spawn_link-4">spawn_link/4</a></li> <li title="spawn_monitor-1"><a href="erlang.html#spawn_monitor-1">spawn_monitor/1</a></li> <li title="spawn_monitor-3"><a href="erlang.html#spawn_monitor-3">spawn_monitor/3</a></li> <li title="spawn_opt-2"><a href="erlang.html#spawn_opt-2">spawn_opt/2</a></li> <li title="spawn_opt-3"><a href="erlang.html#spawn_opt-3">spawn_opt/3</a></li> <li title="spawn_opt-4"><a href="erlang.html#spawn_opt-4">spawn_opt/4</a></li> <li title="spawn_opt-5"><a href="erlang.html#spawn_opt-5">spawn_opt/5</a></li> <li title="split_binary-2"><a href="erlang.html#split_binary-2">split_binary/2</a></li> <li title="start_timer-3"><a href="erlang.html#start_timer-3">start_timer/3</a></li> <li title="statistics-1"><a href="erlang.html#statistics-1">statistics/1</a></li> <li title="suspend_process-2"><a href="erlang.html#suspend_process-2">suspend_process/2</a></li> <li title="suspend_process-1"><a href="erlang.html#suspend_process-1">suspend_process/1</a></li> <li title="system_flag-2"><a href="erlang.html#system_flag-2">system_flag/2</a></li> <li title="system_info-1"><a href="erlang.html#system_info-1">system_info/1</a></li> <li title="system_monitor-0"><a href="erlang.html#system_monitor-0">system_monitor/0</a></li> <li title="system_monitor-1"><a href="erlang.html#system_monitor-1">system_monitor/1</a></li> <li title="system_monitor-2"><a href="erlang.html#system_monitor-2">system_monitor/2</a></li> <li title="system_profile-0"><a href="erlang.html#system_profile-0">system_profile/0</a></li> <li title="system_profile-2"><a href="erlang.html#system_profile-2">system_profile/2</a></li> <li title="term_to_binary-1"><a href="erlang.html#term_to_binary-1">term_to_binary/1</a></li> <li title="term_to_binary-2"><a href="erlang.html#term_to_binary-2">term_to_binary/2</a></li> <li title="throw-1"><a href="erlang.html#throw-1">throw/1</a></li> <li title="time-0"><a href="erlang.html#time-0">time/0</a></li> <li title="tl-1"><a href="erlang.html#tl-1">tl/1</a></li> <li title="trace-3"><a href="erlang.html#trace-3">trace/3</a></li> <li title="trace_delivered-1"><a href="erlang.html#trace_delivered-1">trace_delivered/1</a></li> <li title="trace_info-2"><a href="erlang.html#trace_info-2">trace_info/2</a></li> <li title="trace_pattern-2"><a href="erlang.html#trace_pattern-2">trace_pattern/2</a></li> <li title="trace_pattern-3"><a href="erlang.html#trace_pattern-3">trace_pattern/3</a></li> <li title="trunc-1"><a href="erlang.html#trunc-1">trunc/1</a></li> <li title="tuple_size-1"><a href="erlang.html#tuple_size-1">tuple_size/1</a></li> <li title="tuple_to_list-1"><a href="erlang.html#tuple_to_list-1">tuple_to_list/1</a></li> <li title="universaltime-0"><a href="erlang.html#universaltime-0">universaltime/0</a></li> <li title="universaltime_to_localtime-1"><a href="erlang.html#universaltime_to_localtime-1">universaltime_to_localtime/1</a></li> <li title="unlink-1"><a href="erlang.html#unlink-1">unlink/1</a></li> <li title="unregister-1"><a href="erlang.html#unregister-1">unregister/1</a></li> <li title="whereis-1"><a href="erlang.html#whereis-1">whereis/1</a></li> <li title="yield-0"><a href="erlang.html#yield-0">yield/0</a></li> </ul> </li> <li id="no" title="init " expanded="false">init<ul> <li><a href="init.html"> Top of manual page </a></li> <li title="boot-1"><a href="init.html#boot-1">boot/1</a></li> <li title="get_argument-1"><a href="init.html#get_argument-1">get_argument/1</a></li> <li title="get_arguments-0"><a href="init.html#get_arguments-0">get_arguments/0</a></li> <li title="get_plain_arguments-0"><a href="init.html#get_plain_arguments-0">get_plain_arguments/0</a></li> <li title="get_status-0"><a href="init.html#get_status-0">get_status/0</a></li> <li title="reboot-0"><a href="init.html#reboot-0">reboot/0</a></li> <li title="restart-0"><a href="init.html#restart-0">restart/0</a></li> <li title="script_id-0"><a href="init.html#script_id-0">script_id/0</a></li> <li title="stop-0"><a href="init.html#stop-0">stop/0</a></li> <li title="stop-1"><a href="init.html#stop-1">stop/1</a></li> </ul> </li> <li id="loadscrollpos" title="zlib " expanded="true">zlib<ul> <li><a href="zlib.html"> Top of manual page </a></li> <li title="open-0"><a href="zlib.html#open-0">open/0</a></li> <li title="close-1"><a href="zlib.html#close-1">close/1</a></li> <li title="deflateInit-1"><a href="zlib.html#deflateInit-1">deflateInit/1</a></li> <li title="deflateInit-2"><a href="zlib.html#deflateInit-2">deflateInit/2</a></li> <li title="deflateInit-6"><a href="zlib.html#deflateInit-6">deflateInit/6</a></li> <li title="deflate-2"><a href="zlib.html#deflate-2">deflate/2</a></li> <li title="deflate-3"><a href="zlib.html#deflate-3">deflate/3</a></li> <li title="deflateSetDictionary-2"><a href="zlib.html#deflateSetDictionary-2">deflateSetDictionary/2</a></li> <li title="deflateReset-1"><a href="zlib.html#deflateReset-1">deflateReset/1</a></li> <li title="deflateParams-3"><a href="zlib.html#deflateParams-3">deflateParams/3</a></li> <li title="deflateEnd-1"><a href="zlib.html#deflateEnd-1">deflateEnd/1</a></li> <li title="inflateInit-1"><a href="zlib.html#inflateInit-1">inflateInit/1</a></li> <li title="inflateInit-2"><a href="zlib.html#inflateInit-2">inflateInit/2</a></li> <li title="inflate-2"><a href="zlib.html#inflate-2">inflate/2</a></li> <li title="inflateSetDictionary-2"><a href="zlib.html#inflateSetDictionary-2">inflateSetDictionary/2</a></li> <li title="inflateReset-1"><a href="zlib.html#inflateReset-1">inflateReset/1</a></li> <li title="inflateEnd-1"><a href="zlib.html#inflateEnd-1">inflateEnd/1</a></li> <li title="setBufSize-2"><a href="zlib.html#setBufSize-2">setBufSize/2</a></li> <li title="getBufSize-1"><a href="zlib.html#getBufSize-1">getBufSize/1</a></li> <li title="crc32-1"><a href="zlib.html#crc32-1">crc32/1</a></li> <li title="crc32-2"><a href="zlib.html#crc32-2">crc32/2</a></li> <li title="crc32-3"><a href="zlib.html#crc32-3">crc32/3</a></li> <li title="crc32_combine-4"><a href="zlib.html#crc32_combine-4">crc32_combine/4</a></li> <li title="adler32-2"><a href="zlib.html#adler32-2">adler32/2</a></li> <li title="adler32-3"><a href="zlib.html#adler32-3">adler32/3</a></li> <li title="adler32_combine-4"><a href="zlib.html#adler32_combine-4">adler32_combine/4</a></li> <li title="compress-1"><a href="zlib.html#compress-1">compress/1</a></li> <li title="uncompress-1"><a href="zlib.html#uncompress-1">uncompress/1</a></li> <li title="zip-1"><a href="zlib.html#zip-1">zip/1</a></li> <li title="unzip-1"><a href="zlib.html#unzip-1">unzip/1</a></li> <li title="gzip-1"><a href="zlib.html#gzip-1">gzip/1</a></li> <li title="gunzip-1"><a href="zlib.html#gunzip-1">gunzip/1</a></li> </ul> </li> <li title="epmd"><a href="epmd.html">epmd</a></li> <li title="erl"><a href="erl.html">erl</a></li> <li title="erlc"><a href="erlc.html">erlc</a></li> <li title="werl"><a href="werl.html">werl</a></li> <li title="escript"><a href="escript.html">escript</a></li> <li title="erlsrv"><a href="erlsrv.html">erlsrv</a></li> <li title="start_erl"><a href="start_erl.html">start_erl</a></li> <li id="no" title="erl_set_memory_block " expanded="false">erl_set_memory_block<ul> <li><a href="erl_set_memory_block.html"> Top of manual page </a></li> <li title="erl_set_memory_block"><a href="erl_set_memory_block.html#erl_set_memory_block">erl_set_memory_block() </a></li> <li title="erl_memory_show"><a href="erl_set_memory_block.html#erl_memory_show">erl_memory_show() </a></li> <li title="erl_mem_info_get"><a href="erl_set_memory_block.html#erl_mem_info_get">erl_mem_info_get() </a></li> </ul> </li> <li title="run_erl"><a href="run_erl.html">run_erl</a></li> <li title="start"><a href="start.html">start</a></li> <li id="no" title="erl_driver " expanded="false">erl_driver<ul> <li><a href="erl_driver.html"> Top of manual page </a></li> <li title="driver_system_info"><a href="erl_driver.html#driver_system_info">driver_system_info() </a></li> <li title="driver_output"><a href="erl_driver.html#driver_output">driver_output() </a></li> <li title="driver_output2"><a href="erl_driver.html#driver_output2">driver_output2() </a></li> <li title="driver_output_binary"><a href="erl_driver.html#driver_output_binary">driver_output_binary() </a></li> <li title="driver_outputv"><a href="erl_driver.html#driver_outputv">driver_outputv() </a></li> <li title="driver_vec_to_buf"><a href="erl_driver.html#driver_vec_to_buf">driver_vec_to_buf() </a></li> <li title="driver_set_timer"><a href="erl_driver.html#driver_set_timer">driver_set_timer() </a></li> <li title="driver_cancel_timer"><a href="erl_driver.html#driver_cancel_timer">driver_cancel_timer() </a></li> <li title="driver_read_timer"><a href="erl_driver.html#driver_read_timer">driver_read_timer() </a></li> <li title="driver_get_now"><a href="erl_driver.html#driver_get_now">driver_get_now() </a></li> <li title="driver_select"><a href="erl_driver.html#driver_select">driver_select() </a></li> <li title="driver_alloc"><a href="erl_driver.html#driver_alloc">driver_alloc() </a></li> <li title="driver_realloc"><a href="erl_driver.html#driver_realloc">driver_realloc() </a></li> <li title="driver_free"><a href="erl_driver.html#driver_free">driver_free() </a></li> <li title="driver_alloc_binary"><a href="erl_driver.html#driver_alloc_binary">driver_alloc_binary() </a></li> <li title="driver_realloc_binary"><a href="erl_driver.html#driver_realloc_binary">driver_realloc_binary() </a></li> <li title="driver_free_binary"><a href="erl_driver.html#driver_free_binary">driver_free_binary() </a></li> <li title="driver_binary_get_refc"><a href="erl_driver.html#driver_binary_get_refc">driver_binary_get_refc() </a></li> <li title="driver_binary_inc_refc"><a href="erl_driver.html#driver_binary_inc_refc">driver_binary_inc_refc() </a></li> <li title="driver_binary_dec_refc"><a href="erl_driver.html#driver_binary_dec_refc">driver_binary_dec_refc() </a></li> <li title="driver_enq"><a href="erl_driver.html#driver_enq">driver_enq() </a></li> <li title="driver_pushq"><a href="erl_driver.html#driver_pushq">driver_pushq() </a></li> <li title="driver_deq"><a href="erl_driver.html#driver_deq">driver_deq() </a></li> <li title="driver_sizeq"><a href="erl_driver.html#driver_sizeq">driver_sizeq() </a></li> <li title="driver_enq_bin"><a href="erl_driver.html#driver_enq_bin">driver_enq_bin() </a></li> <li title="driver_pushq_bin"><a href="erl_driver.html#driver_pushq_bin">driver_pushq_bin() </a></li> <li title="driver_peekq"><a href="erl_driver.html#driver_peekq">driver_peekq() </a></li> <li title="driver_enqv"><a href="erl_driver.html#driver_enqv">driver_enqv() </a></li> <li title="driver_pushqv"><a href="erl_driver.html#driver_pushqv">driver_pushqv() </a></li> <li title="driver_pdl_create"><a href="erl_driver.html#driver_pdl_create">driver_pdl_create() </a></li> <li title="driver_pdl_lock"><a href="erl_driver.html#driver_pdl_lock">driver_pdl_lock() </a></li> <li title="driver_pdl_unlock"><a href="erl_driver.html#driver_pdl_unlock">driver_pdl_unlock() </a></li> <li title="driver_pdl_get_refc"><a href="erl_driver.html#driver_pdl_get_refc">driver_pdl_get_refc() </a></li> <li title="driver_pdl_inc_refc"><a href="erl_driver.html#driver_pdl_inc_refc">driver_pdl_inc_refc() </a></li> <li title="driver_pdl_dec_refc"><a href="erl_driver.html#driver_pdl_dec_refc">driver_pdl_dec_refc() </a></li> <li title="driver_monitor_process"><a href="erl_driver.html#driver_monitor_process">driver_monitor_process() </a></li> <li title="driver_demonitor_process"><a href="erl_driver.html#driver_demonitor_process">driver_demonitor_process() </a></li> <li title="driver_get_monitored_process"><a href="erl_driver.html#driver_get_monitored_process">driver_get_monitored_process() </a></li> <li title="driver_compare_monitors"><a href="erl_driver.html#driver_compare_monitors">driver_compare_monitors() </a></li> <li title="add_driver_entry"><a href="erl_driver.html#add_driver_entry">add_driver_entry() </a></li> <li title="remove_driver_entry"><a href="erl_driver.html#remove_driver_entry">remove_driver_entry() </a></li> <li title="erl_errno_id"><a href="erl_driver.html#erl_errno_id">erl_errno_id() </a></li> <li title="set_busy_port"><a href="erl_driver.html#set_busy_port">set_busy_port() </a></li> <li title="set_port_control_flags"><a href="erl_driver.html#set_port_control_flags">set_port_control_flags() </a></li> <li title="driver_failure_eof"><a href="erl_driver.html#driver_failure_eof">driver_failure_eof() </a></li> <li title="driver_failure_atom"><a href="erl_driver.html#driver_failure_atom">driver_failure_atom() </a></li> <li title="driver_failure_posix"><a href="erl_driver.html#driver_failure_posix">driver_failure_posix() </a></li> <li title="driver_failure"><a href="erl_driver.html#driver_failure">driver_failure() </a></li> <li title="driver_connected"><a href="erl_driver.html#driver_connected">driver_connected() </a></li> <li title="driver_caller"><a href="erl_driver.html#driver_caller">driver_caller() </a></li> <li title="driver_output_term"><a href="erl_driver.html#driver_output_term">driver_output_term() </a></li> <li title="driver_mk_atom"><a href="erl_driver.html#driver_mk_atom">driver_mk_atom() </a></li> <li title="driver_mk_port"><a href="erl_driver.html#driver_mk_port">driver_mk_port() </a></li> <li title="driver_send_term"><a href="erl_driver.html#driver_send_term">driver_send_term() </a></li> <li title="driver_async "><a href="erl_driver.html#driver_async%20">driver_async () </a></li> <li title="driver_async_cancel"><a href="erl_driver.html#driver_async_cancel">driver_async_cancel() </a></li> <li title="driver_lock_driver"><a href="erl_driver.html#driver_lock_driver">driver_lock_driver() </a></li> <li title="driver_create_port"><a href="erl_driver.html#driver_create_port">driver_create_port() </a></li> <li title="erl_drv_thread_create"><a href="erl_driver.html#erl_drv_thread_create">erl_drv_thread_create() </a></li> <li title="erl_drv_thread_opts_create"><a href="erl_driver.html#erl_drv_thread_opts_create">erl_drv_thread_opts_create() </a></li> <li title="erl_drv_thread_opts_destroy"><a href="erl_driver.html#erl_drv_thread_opts_destroy">erl_drv_thread_opts_destroy() </a></li> <li title="erl_drv_thread_exit"><a href="erl_driver.html#erl_drv_thread_exit">erl_drv_thread_exit() </a></li> <li title="erl_drv_thread_join"><a href="erl_driver.html#erl_drv_thread_join">erl_drv_thread_join() </a></li> <li title="erl_drv_thread_self"><a href="erl_driver.html#erl_drv_thread_self">erl_drv_thread_self() </a></li> <li title="erl_drv_equal_tids"><a href="erl_driver.html#erl_drv_equal_tids">erl_drv_equal_tids() </a></li> <li title="erl_drv_mutex_create"><a href="erl_driver.html#erl_drv_mutex_create">erl_drv_mutex_create() </a></li> <li title="erl_drv_mutex_destroy"><a href="erl_driver.html#erl_drv_mutex_destroy">erl_drv_mutex_destroy() </a></li> <li title="erl_drv_mutex_lock"><a href="erl_driver.html#erl_drv_mutex_lock">erl_drv_mutex_lock() </a></li> <li title="erl_drv_mutex_trylock"><a href="erl_driver.html#erl_drv_mutex_trylock">erl_drv_mutex_trylock() </a></li> <li title="erl_drv_mutex_unlock"><a href="erl_driver.html#erl_drv_mutex_unlock">erl_drv_mutex_unlock() </a></li> <li title="erl_drv_cond_create"><a href="erl_driver.html#erl_drv_cond_create">erl_drv_cond_create() </a></li> <li title="erl_drv_cond_destroy"><a href="erl_driver.html#erl_drv_cond_destroy">erl_drv_cond_destroy() </a></li> <li title="erl_drv_cond_signal"><a href="erl_driver.html#erl_drv_cond_signal">erl_drv_cond_signal() </a></li> <li title="erl_drv_cond_broadcast"><a href="erl_driver.html#erl_drv_cond_broadcast">erl_drv_cond_broadcast() </a></li> <li title="erl_drv_cond_wait"><a href="erl_driver.html#erl_drv_cond_wait">erl_drv_cond_wait() </a></li> <li title="erl_drv_rwlock_create"><a href="erl_driver.html#erl_drv_rwlock_create">erl_drv_rwlock_create() </a></li> <li title="erl_drv_rwlock_destroy"><a href="erl_driver.html#erl_drv_rwlock_destroy">erl_drv_rwlock_destroy() </a></li> <li title="erl_drv_rwlock_rlock"><a href="erl_driver.html#erl_drv_rwlock_rlock">erl_drv_rwlock_rlock() </a></li> <li title="erl_drv_rwlock_tryrlock"><a href="erl_driver.html#erl_drv_rwlock_tryrlock">erl_drv_rwlock_tryrlock() </a></li> <li title="erl_drv_rwlock_runlock"><a href="erl_driver.html#erl_drv_rwlock_runlock">erl_drv_rwlock_runlock() </a></li> <li title="erl_drv_rwlock_rwlock"><a href="erl_driver.html#erl_drv_rwlock_rwlock">erl_drv_rwlock_rwlock() </a></li> <li title="erl_drv_rwlock_tryrwlock"><a href="erl_driver.html#erl_drv_rwlock_tryrwlock">erl_drv_rwlock_tryrwlock() </a></li> <li title="erl_drv_rwlock_rwunlock"><a href="erl_driver.html#erl_drv_rwlock_rwunlock">erl_drv_rwlock_rwunlock() </a></li> <li title="erl_drv_tsd_key_create"><a href="erl_driver.html#erl_drv_tsd_key_create">erl_drv_tsd_key_create() </a></li> <li title="erl_drv_tsd_key_destroy"><a href="erl_driver.html#erl_drv_tsd_key_destroy">erl_drv_tsd_key_destroy() </a></li> <li title="erl_drv_tsd_set"><a href="erl_driver.html#erl_drv_tsd_set">erl_drv_tsd_set() </a></li> <li title="erl_drv_tsd_get"><a href="erl_driver.html#erl_drv_tsd_get">erl_drv_tsd_get() </a></li> <li title="erl_drv_putenv"><a href="erl_driver.html#erl_drv_putenv">erl_drv_putenv() </a></li> <li title="erl_drv_getenv"><a href="erl_driver.html#erl_drv_getenv">erl_drv_getenv() </a></li> </ul> </li> <li title="driver_entry"><a href="driver_entry.html">driver_entry</a></li> <li title="erts_alloc"><a href="erts_alloc.html">erts_alloc</a></li> <li id="no" title="erl_nif " expanded="false">erl_nif<ul> <li><a href="erl_nif.html"> Top of manual page </a></li> <li title="enif_alloc"><a href="erl_nif.html#enif_alloc">enif_alloc() </a></li> <li title="enif_alloc_binary"><a href="erl_nif.html#enif_alloc_binary">enif_alloc_binary() </a></li> <li title="enif_alloc_env"><a href="erl_nif.html#enif_alloc_env">enif_alloc_env() </a></li> <li title="enif_alloc_resource"><a href="erl_nif.html#enif_alloc_resource">enif_alloc_resource() </a></li> <li title="enif_clear_env"><a href="erl_nif.html#enif_clear_env">enif_clear_env() </a></li> <li title="enif_compare"><a href="erl_nif.html#enif_compare">enif_compare() </a></li> <li title="enif_cond_broadcast"><a href="erl_nif.html#enif_cond_broadcast">enif_cond_broadcast() </a></li> <li title="enif_cond_create"><a href="erl_nif.html#enif_cond_create">enif_cond_create() </a></li> <li title="enif_cond_destroy"><a href="erl_nif.html#enif_cond_destroy">enif_cond_destroy() </a></li> <li title="enif_cond_signal"><a href="erl_nif.html#enif_cond_signal">enif_cond_signal() </a></li> <li title="enif_cond_wait"><a href="erl_nif.html#enif_cond_wait">enif_cond_wait() </a></li> <li title="enif_equal_tids"><a href="erl_nif.html#enif_equal_tids">enif_equal_tids() </a></li> <li title="enif_free"><a href="erl_nif.html#enif_free">enif_free() </a></li> <li title="enif_free_env"><a href="erl_nif.html#enif_free_env">enif_free_env() </a></li> <li title="enif_get_atom"><a href="erl_nif.html#enif_get_atom">enif_get_atom() </a></li> <li title="enif_get_atom_length"><a href="erl_nif.html#enif_get_atom_length">enif_get_atom_length() </a></li> <li title="enif_get_double"><a href="erl_nif.html#enif_get_double">enif_get_double() </a></li> <li title="enif_get_int"><a href="erl_nif.html#enif_get_int">enif_get_int() </a></li> <li title="enif_get_int64"><a href="erl_nif.html#enif_get_int64">enif_get_int64() </a></li> <li title="enif_get_local_pid"><a href="erl_nif.html#enif_get_local_pid">enif_get_local_pid() </a></li> <li title="enif_get_list_cell"><a href="erl_nif.html#enif_get_list_cell">enif_get_list_cell() </a></li> <li title="enif_get_list_length"><a href="erl_nif.html#enif_get_list_length">enif_get_list_length() </a></li> <li title="enif_get_long"><a href="erl_nif.html#enif_get_long">enif_get_long() </a></li> <li title="enif_get_resource"><a href="erl_nif.html#enif_get_resource">enif_get_resource() </a></li> <li title="enif_get_string"><a href="erl_nif.html#enif_get_string">enif_get_string() </a></li> <li title="enif_get_tuple"><a href="erl_nif.html#enif_get_tuple">enif_get_tuple() </a></li> <li title="enif_get_uint"><a href="erl_nif.html#enif_get_uint">enif_get_uint() </a></li> <li title="enif_get_uint64"><a href="erl_nif.html#enif_get_uint64">enif_get_uint64() </a></li> <li title="enif_get_ulong"><a href="erl_nif.html#enif_get_ulong">enif_get_ulong() </a></li> <li title="enif_inspect_binary"><a href="erl_nif.html#enif_inspect_binary">enif_inspect_binary() </a></li> <li title="enif_inspect_iolist_as_binary"><a href="erl_nif.html#enif_inspect_iolist_as_binary">enif_inspect_iolist_as_binary() </a></li> <li title="enif_is_atom"><a href="erl_nif.html#enif_is_atom">enif_is_atom() </a></li> <li title="enif_is_binary"><a href="erl_nif.html#enif_is_binary">enif_is_binary() </a></li> <li title="enif_is_empty_list"><a href="erl_nif.html#enif_is_empty_list">enif_is_empty_list() </a></li> <li title="enif_is_exception"><a href="erl_nif.html#enif_is_exception">enif_is_exception() </a></li> <li title="enif_is_fun"><a href="erl_nif.html#enif_is_fun">enif_is_fun() </a></li> <li title="enif_is_identical"><a href="erl_nif.html#enif_is_identical">enif_is_identical() </a></li> <li title="enif_is_pid"><a href="erl_nif.html#enif_is_pid">enif_is_pid() </a></li> <li title="enif_is_port"><a href="erl_nif.html#enif_is_port">enif_is_port() </a></li> <li title="enif_is_ref"><a href="erl_nif.html#enif_is_ref">enif_is_ref() </a></li> <li title="enif_is_tuple"><a href="erl_nif.html#enif_is_tuple">enif_is_tuple() </a></li> <li title="enif_is_list"><a href="erl_nif.html#enif_is_list">enif_is_list() </a></li> <li title="enif_keep_resource"><a href="erl_nif.html#enif_keep_resource">enif_keep_resource() </a></li> <li title="enif_make_atom"><a href="erl_nif.html#enif_make_atom">enif_make_atom() </a></li> <li title="enif_make_atom_len"><a href="erl_nif.html#enif_make_atom_len">enif_make_atom_len() </a></li> <li title="enif_make_badarg"><a href="erl_nif.html#enif_make_badarg">enif_make_badarg() </a></li> <li title="enif_make_binary"><a href="erl_nif.html#enif_make_binary">enif_make_binary() </a></li> <li title="enif_make_copy"><a href="erl_nif.html#enif_make_copy">enif_make_copy() </a></li> <li title="enif_make_double"><a href="erl_nif.html#enif_make_double">enif_make_double() </a></li> <li title="enif_make_existing_atom"><a href="erl_nif.html#enif_make_existing_atom">enif_make_existing_atom() </a></li> <li title="enif_make_existing_atom_len"><a href="erl_nif.html#enif_make_existing_atom_len">enif_make_existing_atom_len() </a></li> <li title="enif_make_int"><a href="erl_nif.html#enif_make_int">enif_make_int() </a></li> <li title="enif_make_int64"><a href="erl_nif.html#enif_make_int64">enif_make_int64() </a></li> <li title="enif_make_list"><a href="erl_nif.html#enif_make_list">enif_make_list() </a></li> <li title="enif_make_list1"><a href="erl_nif.html#enif_make_list1">enif_make_list1() </a></li> <li title="enif_make_list2"><a href="erl_nif.html#enif_make_list2">enif_make_list2() </a></li> <li title="enif_make_list3"><a href="erl_nif.html#enif_make_list3">enif_make_list3() </a></li> <li title="enif_make_list4"><a href="erl_nif.html#enif_make_list4">enif_make_list4() </a></li> <li title="enif_make_list5"><a href="erl_nif.html#enif_make_list5">enif_make_list5() </a></li> <li title="enif_make_list6"><a href="erl_nif.html#enif_make_list6">enif_make_list6() </a></li> <li title="enif_make_list7"><a href="erl_nif.html#enif_make_list7">enif_make_list7() </a></li> <li title="enif_make_list8"><a href="erl_nif.html#enif_make_list8">enif_make_list8() </a></li> <li title="enif_make_list9"><a href="erl_nif.html#enif_make_list9">enif_make_list9() </a></li> <li title="enif_make_list_cell"><a href="erl_nif.html#enif_make_list_cell">enif_make_list_cell() </a></li> <li title="enif_make_list_from_array"><a href="erl_nif.html#enif_make_list_from_array">enif_make_list_from_array() </a></li> <li title="enif_make_long"><a href="erl_nif.html#enif_make_long">enif_make_long() </a></li> <li title="enif_make_new_binary"><a href="erl_nif.html#enif_make_new_binary">enif_make_new_binary() </a></li> <li title="enif_make_pid"><a href="erl_nif.html#enif_make_pid">enif_make_pid() </a></li> <li title="enif_make_ref"><a href="erl_nif.html#enif_make_ref">enif_make_ref() </a></li> <li title="enif_make_resource"><a href="erl_nif.html#enif_make_resource">enif_make_resource() </a></li> <li title="enif_make_resource_binary"><a href="erl_nif.html#enif_make_resource_binary">enif_make_resource_binary() </a></li> <li title="enif_make_string"><a href="erl_nif.html#enif_make_string">enif_make_string() </a></li> <li title="enif_make_string_len"><a href="erl_nif.html#enif_make_string_len">enif_make_string_len() </a></li> <li title="enif_make_sub_binary"><a href="erl_nif.html#enif_make_sub_binary">enif_make_sub_binary() </a></li> <li title="enif_make_tuple"><a href="erl_nif.html#enif_make_tuple">enif_make_tuple() </a></li> <li title="enif_make_tuple1"><a href="erl_nif.html#enif_make_tuple1">enif_make_tuple1() </a></li> <li title="enif_make_tuple2"><a href="erl_nif.html#enif_make_tuple2">enif_make_tuple2() </a></li> <li title="enif_make_tuple3"><a href="erl_nif.html#enif_make_tuple3">enif_make_tuple3() </a></li> <li title="enif_make_tuple4"><a href="erl_nif.html#enif_make_tuple4">enif_make_tuple4() </a></li> <li title="enif_make_tuple5"><a href="erl_nif.html#enif_make_tuple5">enif_make_tuple5() </a></li> <li title="enif_make_tuple6"><a href="erl_nif.html#enif_make_tuple6">enif_make_tuple6() </a></li> <li title="enif_make_tuple7"><a href="erl_nif.html#enif_make_tuple7">enif_make_tuple7() </a></li> <li title="enif_make_tuple8"><a href="erl_nif.html#enif_make_tuple8">enif_make_tuple8() </a></li> <li title="enif_make_tuple9"><a href="erl_nif.html#enif_make_tuple9">enif_make_tuple9() </a></li> <li title="enif_make_tuple_from_array"><a href="erl_nif.html#enif_make_tuple_from_array">enif_make_tuple_from_array() </a></li> <li title="enif_make_uint"><a href="erl_nif.html#enif_make_uint">enif_make_uint() </a></li> <li title="enif_make_uint64"><a href="erl_nif.html#enif_make_uint64">enif_make_uint64() </a></li> <li title="enif_make_ulong"><a href="erl_nif.html#enif_make_ulong">enif_make_ulong() </a></li> <li title="enif_mutex_create"><a href="erl_nif.html#enif_mutex_create">enif_mutex_create() </a></li> <li title="enif_mutex_destroy"><a href="erl_nif.html#enif_mutex_destroy">enif_mutex_destroy() </a></li> <li title="enif_mutex_lock"><a href="erl_nif.html#enif_mutex_lock">enif_mutex_lock() </a></li> <li title="enif_mutex_trylock"><a href="erl_nif.html#enif_mutex_trylock">enif_mutex_trylock() </a></li> <li title="enif_mutex_unlock"><a href="erl_nif.html#enif_mutex_unlock">enif_mutex_unlock() </a></li> <li title="enif_open_resource_type"><a href="erl_nif.html#enif_open_resource_type">enif_open_resource_type() </a></li> <li title="enif_priv_data"><a href="erl_nif.html#enif_priv_data">enif_priv_data() </a></li> <li title="enif_realloc_binary"><a href="erl_nif.html#enif_realloc_binary">enif_realloc_binary() </a></li> <li title="enif_release_binary"><a href="erl_nif.html#enif_release_binary">enif_release_binary() </a></li> <li title="enif_release_resource"><a href="erl_nif.html#enif_release_resource">enif_release_resource() </a></li> <li title="enif_rwlock_create"><a href="erl_nif.html#enif_rwlock_create">enif_rwlock_create() </a></li> <li title="enif_rwlock_destroy"><a href="erl_nif.html#enif_rwlock_destroy">enif_rwlock_destroy() </a></li> <li title="enif_rwlock_rlock"><a href="erl_nif.html#enif_rwlock_rlock">enif_rwlock_rlock() </a></li> <li title="enif_rwlock_runlock"><a href="erl_nif.html#enif_rwlock_runlock">enif_rwlock_runlock() </a></li> <li title="enif_rwlock_rwlock"><a href="erl_nif.html#enif_rwlock_rwlock">enif_rwlock_rwlock() </a></li> <li title="enif_rwlock_rwunlock"><a href="erl_nif.html#enif_rwlock_rwunlock">enif_rwlock_rwunlock() </a></li> <li title="enif_rwlock_tryrlock"><a href="erl_nif.html#enif_rwlock_tryrlock">enif_rwlock_tryrlock() </a></li> <li title="enif_rwlock_tryrwlock"><a href="erl_nif.html#enif_rwlock_tryrwlock">enif_rwlock_tryrwlock() </a></li> <li title="enif_self"><a href="erl_nif.html#enif_self">enif_self() </a></li> <li title="enif_send"><a href="erl_nif.html#enif_send">enif_send() </a></li> <li title="enif_sizeof_resource"><a href="erl_nif.html#enif_sizeof_resource">enif_sizeof_resource() </a></li> <li title="enif_system_info"><a href="erl_nif.html#enif_system_info">enif_system_info() </a></li> <li title="enif_thread_create"><a href="erl_nif.html#enif_thread_create">enif_thread_create() </a></li> <li title="enif_thread_exit"><a href="erl_nif.html#enif_thread_exit">enif_thread_exit() </a></li> <li title="enif_thread_join"><a href="erl_nif.html#enif_thread_join">enif_thread_join() </a></li> <li title="enif_thread_opts_create"><a href="erl_nif.html#enif_thread_opts_create">enif_thread_opts_create() </a></li> <li title="enif_thread_opts_destroy"><a href="erl_nif.html#enif_thread_opts_destroy">enif_thread_opts_destroy() </a></li> <li title="enif_thread_self"><a href="erl_nif.html#enif_thread_self">enif_thread_self() </a></li> <li title="enif_tsd_key_create"><a href="erl_nif.html#enif_tsd_key_create">enif_tsd_key_create() </a></li> <li title="enif_tsd_key_destroy"><a href="erl_nif.html#enif_tsd_key_destroy">enif_tsd_key_destroy() </a></li> <li title="enif_tsd_get"><a href="erl_nif.html#enif_tsd_get">enif_tsd_get() </a></li> <li title="enif_tsd_set"><a href="erl_nif.html#enif_tsd_set">enif_tsd_set() </a></li> </ul> </li> </ul> </div></div> <div id="content"> <div class="innertube"> <!-- refpage --><center><h1>zlib</h1></center> <h3>MODULE</h3> <div class="REFBODY">zlib</div> <h3>MODULE SUMMARY</h3> <div class="REFBODY">Zlib Compression interface.</div> <h3>DESCRIPTION</h3> <div class="REFBODY"><p> <p>The zlib module provides an API for the zlib library (http://www.zlib.org). It is used to compress and decompress data. The data format is described by RFCs 1950 to 1952.</p> <p>A typical (compress) usage looks like:</p> <div class="example"><pre> Z = zlib:open(), ok = zlib:deflateInit(Z,default), Compress = fun(end_of_data, _Cont) -> []; (Data, Cont) -> [zlib:deflate(Z, Data)|Cont(Read(),Cont)] end, Compressed = Compress(Read(),Compress), Last = zlib:deflate(Z, [], finish), ok = zlib:deflateEnd(Z), zlib:close(Z), list_to_binary([Compressed|Last])</pre></div> <p>In all functions errors, <span class="code">{'EXIT',{Reason,Backtrace}}</span>, might be thrown, where <span class="code">Reason</span> describes the error. Typical reasons are:</p> <dl> <dt><strong><span class="code">badarg</span></strong></dt> <dd> <p>Bad argument</p> </dd> <dt><strong><span class="code">data_error</span></strong></dt> <dd> <p>The data contains errors</p> </dd> <dt><strong><span class="code">stream_error</span></strong></dt> <dd> <p>Inconsistent stream state</p> </dd> <dt><strong><span class="code">einval</span></strong></dt> <dd> <p>Bad value or wrong function called</p> </dd> <dt><strong><span class="code">{need_dictionary,Adler32}</span></strong></dt> <dd> <p>See <span class="code">inflate/2</span></p> </dd> </dl> </p></div> <h3>DATA TYPES</h3> <p> <span class="bold_code"><a name="type-zstream">zstream()</a> = port()</span><br></p> <div class="REFBODY"><p> <p>A zlib stream, see <span class="bold_code"><a href="#open-0">open/0</a></span>. </p> </p></div> <p> <span class="bold_code"><a name="type-zlevel">zlevel()</a> = none<br> | default<br> | best_compression<br> | best_speed<br> | 0..9</span><br></p> <p> <span class="bold_code"><a name="type-zmemlevel">zmemlevel()</a> = 1..9</span><br></p> <p> <span class="bold_code"><a name="type-zmethod">zmethod()</a> = deflated</span><br></p> <p> <span class="bold_code"><a name="type-zstrategy">zstrategy()</a> = default | filtered | huffman_only</span><br></p> <p> <span class="bold_code"><a name="type-zwindowbits">zwindowbits()</a> = -15..-9 | 9..47</span><br></p> <div class="REFBODY"><p> <p>Normally in the range <span class="code">-15..-9 | 9..15</span>.</p> </p></div> <h3>EXPORTS</h3> <p><a name="open-0"></a><span class="bold_code">open() -> <span class="bold_code"><a href="#type-zstream">zstream()</a></span></span><br></p> <div class="REFBODY"><p> <p>Open a zlib stream.</p> </p></div> <p><a name="close-1"></a><span class="bold_code">close(Z) -> ok</span><br><div class="REFBODY"> <p>Types:</p> <div class="REFTYPES"><span class="bold_code">Z = <span class="bold_code"><a href="#type-zstream">zstream()</a></span></span></div> </div></p> <div class="REFBODY"><p> <p>Closes the stream referenced by <span class="code">Z</span>.</p> </p></div> <p><a name="deflateInit-1"></a><span class="bold_code">deflateInit(Z) -> ok</span><br><div class="REFBODY"> <p>Types:</p> <div class="REFTYPES"><span class="bold_code">Z = <span class="bold_code"><a href="#type-zstream">zstream()</a></span></span></div> </div></p> <div class="REFBODY"><p> <p>Same as <span class="code">zlib:deflateInit(Z, default)</span>.</p> </p></div> <p><a name="deflateInit-2"></a><span class="bold_code">deflateInit(Z, Level) -> ok</span><br><div class="REFBODY"> <p>Types:</p> <div class="REFTYPES"><span class="bold_code">Z = <span class="bold_code"><a href="#type-zstream">zstream()</a></span></span></div> <div class="REFTYPES"><span class="bold_code">Level = <span class="bold_code"><a href="#type-zlevel">zlevel()</a></span></span></div> </div></p> <div class="REFBODY"><p> <p>Initialize a zlib stream for compression.</p> <p><span class="code">Level</span> decides the compression level to be used, 0 (<span class="code">none</span>), gives no compression at all, 1 (<span class="code">best_speed</span>) gives best speed and 9 (<span class="code">best_compression</span>) gives best compression.</p> </p></div> <p><a name="deflateInit-6"></a><span class="bold_code">deflateInit(Z, Level, Method, WindowBits, MemLevel, Strategy) -><br> ok</span><br><div class="REFBODY"> <p>Types:</p> <div class="REFTYPES"><span class="bold_code">Z = <span class="bold_code"><a href="#type-zstream">zstream()</a></span></span></div> <div class="REFTYPES"><span class="bold_code">Level = <span class="bold_code"><a href="#type-zlevel">zlevel()</a></span></span></div> <div class="REFTYPES"><span class="bold_code">Method = <span class="bold_code"><a href="#type-zmethod">zmethod()</a></span></span></div> <div class="REFTYPES"><span class="bold_code">WindowBits = <span class="bold_code"><a href="#type-zwindowbits">zwindowbits()</a></span></span></div> <div class="REFTYPES"><span class="bold_code">MemLevel = <span class="bold_code"><a href="#type-zmemlevel">zmemlevel()</a></span></span></div> <div class="REFTYPES"><span class="bold_code">Strategy = <span class="bold_code"><a href="#type-zstrategy">zstrategy()</a></span></span></div> </div></p> <div class="REFBODY"><p> <p>Initiates a zlib stream for compression.</p> <p>The <span class="code">Level</span> parameter decides the compression level to be used, 0 (<span class="code">none</span>), gives no compression at all, 1 (<span class="code">best_speed</span>) gives best speed and 9 (<span class="code">best_compression</span>) gives best compression.</p> <p>The <span class="code">Method</span> parameter decides which compression method to use, currently the only supported method is <span class="code">deflated</span>.</p> <p>The <span class="code">WindowBits</span> parameter is the base two logarithm of the window size (the size of the history buffer). It should be in the range 9 through 15. Larger values of this parameter result in better compression at the expense of memory usage. The default value is 15 if <span class="code">deflateInit/2</span>. A negative <span class="code">WindowBits</span> value suppresses the zlib header (and checksum) from the stream. Note that the zlib source mentions this only as a undocumented feature.</p> <p>The <span class="code">MemLevel</span> parameter specifies how much memory should be allocated for the internal compression state. <span class="code">MemLevel</span>=1 uses minimum memory but is slow and reduces compression ratio; <span class="code">MemLevel</span>=9 uses maximum memory for optimal speed. The default value is 8.</p> <p>The <span class="code">Strategy</span> parameter is used to tune the compression algorithm. Use the value <span class="code">default</span> for normal data, <span class="code">filtered</span> for data produced by a filter (or predictor), or <span class="code">huffman_only</span> to force Huffman encoding only (no string match). Filtered data consists mostly of small values with a somewhat random distribution. In this case, the compression algorithm is tuned to compress them better. The effect of <span class="code">filtered</span>is to force more Huffman coding and less string matching; it is somewhat intermediate between <span class="code">default</span> and <span class="code">huffman_only</span>. The <span class="code">Strategy</span> parameter only affects the compression ratio but not the correctness of the compressed output even if it is not set appropriately.</p> </p></div> <p><a name="deflate-2"></a><span class="bold_code">deflate(Z, Data) -> Compressed</span><br><div class="REFBODY"> <p>Types:</p> <div class="REFTYPES"><span class="bold_code">Z = <span class="bold_code"><a href="#type-zstream">zstream()</a></span></span></div> <div class="REFTYPES"><span class="bold_code">Data = iodata()</span></div> <div class="REFTYPES"><span class="bold_code">Compressed = iolist()</span></div> </div></p> <div class="REFBODY"><p> <p>Same as <span class="code">deflate(Z, Data, none)</span>.</p> </p></div> <p><a name="deflate-3"></a><span class="bold_code">deflate(Z, Data, Flush) -> Compressed</span><br><div class="REFBODY"> <p>Types:</p> <div class="REFTYPES"><span class="bold_code">Z = <span class="bold_code"><a href="#type-zstream">zstream()</a></span></span></div> <div class="REFTYPES"><span class="bold_code">Data = iodata()</span></div> <div class="REFTYPES"><span class="bold_code">Flush = none | sync | full | finish</span></div> <div class="REFTYPES"><span class="bold_code">Compressed = iolist()</span></div> </div></p> <div class="REFBODY"><p> <p><span class="code">deflate/3</span> compresses as much data as possible, and stops when the input buffer becomes empty. It may introduce some output latency (reading input without producing any output) except when forced to flush.</p> <p>If the parameter <span class="code">Flush</span> is set to <span class="code">sync</span>, all pending output is flushed to the output buffer and the output is aligned on a byte boundary, so that the decompressor can get all input data available so far. Flushing may degrade compression for some compression algorithms and so it should be used only when necessary.</p> <p>If <span class="code">Flush</span> is set to <span class="code">full</span>, all output is flushed as with <span class="code">sync</span>, and the compression state is reset so that decompression can restart from this point if previous compressed data has been damaged or if random access is desired. Using <span class="code">full</span> too often can seriously degrade the compression.</p> <p>If the parameter <span class="code">Flush</span> is set to <span class="code">finish</span>, pending input is processed, pending output is flushed and <span class="code">deflate/3</span> returns. Afterwards the only possible operations on the stream are <span class="code">deflateReset/1</span> or <span class="code">deflateEnd/1</span>.</p> <p><span class="code">Flush</span> can be set to <span class="code">finish</span> immediately after <span class="code">deflateInit</span> if all compression is to be done in one step.</p> <div class="example"><pre> zlib:deflateInit(Z), B1 = zlib:deflate(Z,Data), B2 = zlib:deflate(Z,<< >>,finish), zlib:deflateEnd(Z), list_to_binary([B1,B2])</pre></div> </p></div> <p><a name="deflateSetDictionary-2"></a><span class="bold_code">deflateSetDictionary(Z, Dictionary) -> Adler32</span><br><div class="REFBODY"> <p>Types:</p> <div class="REFTYPES"><span class="bold_code">Z = <span class="bold_code"><a href="#type-zstream">zstream()</a></span></span></div> <div class="REFTYPES"><span class="bold_code">Dictionary = iodata()</span></div> <div class="REFTYPES"><span class="bold_code">Adler32 = integer()</span></div> </div></p> <div class="REFBODY"><p> <p>Initializes the compression dictionary from the given byte sequence without producing any compressed output. This function must be called immediately after <span class="code">deflateInit/[1|2|6]</span> or <span class="code">deflateReset/1</span>, before any call of <span class="code">deflate/3</span>. The compressor and decompressor must use exactly the same dictionary (see <span class="code">inflateSetDictionary/2</span>). The adler checksum of the dictionary is returned.</p> </p></div> <p><a name="deflateReset-1"></a><span class="bold_code">deflateReset(Z) -> ok</span><br><div class="REFBODY"> <p>Types:</p> <div class="REFTYPES"><span class="bold_code">Z = <span class="bold_code"><a href="#type-zstream">zstream()</a></span></span></div> </div></p> <div class="REFBODY"><p> <p>This function is equivalent to <span class="code">deflateEnd/1</span> followed by <span class="code">deflateInit/[1|2|6]</span>, but does not free and reallocate all the internal compression state. The stream will keep the same compression level and any other attributes.</p> </p></div> <p><a name="deflateParams-3"></a><span class="bold_code">deflateParams(Z, Level, Strategy) -> ok</span><br><div class="REFBODY"> <p>Types:</p> <div class="REFTYPES"><span class="bold_code">Z = <span class="bold_code"><a href="#type-zstream">zstream()</a></span></span></div> <div class="REFTYPES"><span class="bold_code">Level = <span class="bold_code"><a href="#type-zlevel">zlevel()</a></span></span></div> <div class="REFTYPES"><span class="bold_code">Strategy = <span class="bold_code"><a href="#type-zstrategy">zstrategy()</a></span></span></div> </div></p> <div class="REFBODY"><p> <p>Dynamically update the compression level and compression strategy. The interpretation of <span class="code">Level</span> and <span class="code">Strategy</span> is as in <span class="code">deflateInit/6</span>. This can be used to switch between compression and straight copy of the input data, or to switch to a different kind of input data requiring a different strategy. If the compression level is changed, the input available so far is compressed with the old level (and may be flushed); the new level will take effect only at the next call of <span class="code">deflate/3</span>.</p> <p>Before the call of <span class="code">deflateParams</span>, the stream state must be set as for a call of <span class="code">deflate/3</span>, since the currently available input may have to be compressed and flushed.</p> </p></div> <p><a name="deflateEnd-1"></a><span class="bold_code">deflateEnd(Z) -> ok</span><br><div class="REFBODY"> <p>Types:</p> <div class="REFTYPES"><span class="bold_code">Z = <span class="bold_code"><a href="#type-zstream">zstream()</a></span></span></div> </div></p> <div class="REFBODY"><p> <p>End the deflate session and cleans all data used. Note that this function will throw an <span class="code">data_error</span> exception if the last call to <span class="code">deflate/3</span> was not called with <span class="code">Flush</span> set to <span class="code">finish</span>.</p> </p></div> <p><a name="inflateInit-1"></a><span class="bold_code">inflateInit(Z) -> ok</span><br><div class="REFBODY"> <p>Types:</p> <div class="REFTYPES"><span class="bold_code">Z = <span class="bold_code"><a href="#type-zstream">zstream()</a></span></span></div> </div></p> <div class="REFBODY"><p> <p>Initialize a zlib stream for decompression.</p> </p></div> <p><a name="inflateInit-2"></a><span class="bold_code">inflateInit(Z, WindowBits) -> ok</span><br><div class="REFBODY"> <p>Types:</p> <div class="REFTYPES"><span class="bold_code">Z = <span class="bold_code"><a href="#type-zstream">zstream()</a></span></span></div> <div class="REFTYPES"><span class="bold_code">WindowBits = <span class="bold_code"><a href="#type-zwindowbits">zwindowbits()</a></span></span></div> </div></p> <div class="REFBODY"><p> <p>Initialize decompression session on zlib stream.</p> <p>The <span class="code">WindowBits</span> parameter is the base two logarithm of the maximum window size (the size of the history buffer). It should be in the range 9 through 15. The default value is 15 if <span class="code">inflateInit/1</span> is used. If a compressed stream with a larger window size is given as input, inflate() will throw the <span class="code">data_error</span> exception. A negative <span class="code">WindowBits</span> value makes zlib ignore the zlib header (and checksum) from the stream. Note that the zlib source mentions this only as a undocumented feature.</p> </p></div> <p><a name="inflate-2"></a><span class="bold_code">inflate(Z, Data) -> Decompressed</span><br><div class="REFBODY"> <p>Types:</p> <div class="REFTYPES"><span class="bold_code">Z = <span class="bold_code"><a href="#type-zstream">zstream()</a></span></span></div> <div class="REFTYPES"><span class="bold_code">Data = iodata()</span></div> <div class="REFTYPES"><span class="bold_code">Decompressed = iolist()</span></div> </div></p> <div class="REFBODY"><p> <p><span class="code">inflate/2</span> decompresses as much data as possible. It may some introduce some output latency (reading input without producing any output).</p> <p>If a preset dictionary is needed at this point (see <span class="code">inflateSetDictionary</span> below), <span class="code">inflate/2</span> throws a <span class="code">{need_dictionary,Adler}</span> exception where <span class="code">Adler</span> is the adler32 checksum of the dictionary chosen by the compressor.</p> </p></div> <p><a name="inflateSetDictionary-2"></a><span class="bold_code">inflateSetDictionary(Z, Dictionary) -> ok</span><br><div class="REFBODY"> <p>Types:</p> <div class="REFTYPES"><span class="bold_code">Z = <span class="bold_code"><a href="#type-zstream">zstream()</a></span></span></div> <div class="REFTYPES"><span class="bold_code">Dictionary = iodata()</span></div> </div></p> <div class="REFBODY"><p> <p>Initializes the decompression dictionary from the given uncompressed byte sequence. This function must be called immediately after a call of <span class="code">inflate/2</span> if this call threw a <span class="code">{need_dictionary,Adler}</span> exception. The dictionary chosen by the compressor can be determined from the Adler value thrown by the call to <span class="code">inflate/2</span>. The compressor and decompressor must use exactly the same dictionary (see <span class="code">deflateSetDictionary/2</span>).</p> <p>Example:</p> <div class="example"><pre> unpack(Z, Compressed, Dict) -> case catch zlib:inflate(Z, Compressed) of {'EXIT',{{need_dictionary,DictID},_}} -> zlib:inflateSetDictionary(Z, Dict), Uncompressed = zlib:inflate(Z, []); Uncompressed -> Uncompressed end.</pre></div> </p></div> <p><a name="inflateReset-1"></a><span class="bold_code">inflateReset(Z) -> ok</span><br><div class="REFBODY"> <p>Types:</p> <div class="REFTYPES"><span class="bold_code">Z = <span class="bold_code"><a href="#type-zstream">zstream()</a></span></span></div> </div></p> <div class="REFBODY"><p> <p>This function is equivalent to <span class="code">inflateEnd/1</span> followed by <span class="code">inflateInit/1</span>, but does not free and reallocate all the internal decompression state. The stream will keep attributes that may have been set by <span class="code">inflateInit/[1|2]</span>.</p> </p></div> <p><a name="inflateEnd-1"></a><span class="bold_code">inflateEnd(Z) -> ok</span><br><div class="REFBODY"> <p>Types:</p> <div class="REFTYPES"><span class="bold_code">Z = <span class="bold_code"><a href="#type-zstream">zstream()</a></span></span></div> </div></p> <div class="REFBODY"><p> <p>End the inflate session and cleans all data used. Note that this function will throw a <span class="code">data_error</span> exception if no end of stream was found (meaning that not all data has been uncompressed).</p> </p></div> <p><a name="setBufSize-2"></a><span class="bold_code">setBufSize(Z, Size) -> ok</span><br><div class="REFBODY"> <p>Types:</p> <div class="REFTYPES"><span class="bold_code">Z = <span class="bold_code"><a href="#type-zstream">zstream()</a></span></span></div> <div class="REFTYPES"><span class="bold_code">Size = integer() >= 0</span></div> </div></p> <div class="REFBODY"><p> <p>Sets the intermediate buffer size.</p> </p></div> <p><a name="getBufSize-1"></a><span class="bold_code">getBufSize(Z) -> Size</span><br><div class="REFBODY"> <p>Types:</p> <div class="REFTYPES"><span class="bold_code">Z = <span class="bold_code"><a href="#type-zstream">zstream()</a></span></span></div> <div class="REFTYPES"><span class="bold_code">Size = integer() >= 0</span></div> </div></p> <div class="REFBODY"><p> <p>Get the size of intermediate buffer.</p> </p></div> <p><a name="crc32-1"></a><span class="bold_code">crc32(Z) -> CRC</span><br><div class="REFBODY"> <p>Types:</p> <div class="REFTYPES"><span class="bold_code">Z = <span class="bold_code"><a href="#type-zstream">zstream()</a></span></span></div> <div class="REFTYPES"><span class="bold_code">CRC = integer()</span></div> </div></p> <div class="REFBODY"><p> <p>Get the current calculated CRC checksum.</p> </p></div> <p><a name="crc32-2"></a><span class="bold_code">crc32(Z, Data) -> CRC</span><br><div class="REFBODY"> <p>Types:</p> <div class="REFTYPES"><span class="bold_code">Z = <span class="bold_code"><a href="#type-zstream">zstream()</a></span></span></div> <div class="REFTYPES"><span class="bold_code">Data = iodata()</span></div> <div class="REFTYPES"><span class="bold_code">CRC = integer()</span></div> </div></p> <div class="REFBODY"><p> <p>Calculate the CRC checksum for <span class="code">Data</span>.</p> </p></div> <p><a name="crc32-3"></a><span class="bold_code">crc32(Z, PrevCRC, Data) -> CRC</span><br><div class="REFBODY"> <p>Types:</p> <div class="REFTYPES"><span class="bold_code">Z = <span class="bold_code"><a href="#type-zstream">zstream()</a></span></span></div> <div class="REFTYPES"><span class="bold_code">PrevCRC = integer()</span></div> <div class="REFTYPES"><span class="bold_code">Data = iodata()</span></div> <div class="REFTYPES"><span class="bold_code">CRC = integer()</span></div> </div></p> <div class="REFBODY"><p> <p>Update a running CRC checksum for <span class="code">Data</span>. If <span class="code">Data</span> is the empty binary or the empty iolist, this function returns the required initial value for the crc.</p> <div class="example"><pre> Crc = lists:foldl(fun(Data,Crc0) -> zlib:crc32(Z, Crc0, Data), end, zlib:crc32(Z,<< >>), Datas)</pre></div> </p></div> <p><a name="crc32_combine-4"></a><span class="bold_code">crc32_combine(Z, CRC1, CRC2, Size2) -> CRC</span><br><div class="REFBODY"> <p>Types:</p> <div class="REFTYPES"><span class="bold_code">Z = <span class="bold_code"><a href="#type-zstream">zstream()</a></span></span></div> <div class="REFTYPES"><span class="bold_code">CRC = CRC1 = CRC2 = Size2 = integer()</span></div> <div class="REFTYPES"><span class="bold_code"></span></div> <div class="REFTYPES"><span class="bold_code"></span></div> <div class="REFTYPES"><span class="bold_code"></span></div> </div></p> <div class="REFBODY"><p> <p>Combine two CRC checksums into one. For two binaries or iolists, <span class="code">Data1</span> and <span class="code">Data2</span> with sizes of <span class="code">Size1</span> and <span class="code">Size2</span>, with CRC checksums <span class="code">CRC1</span> and <span class="code">CRC2</span>. <span class="code">crc32_combine/4</span> returns the <span class="code">CRC</span> checksum of <span class="code">[Data1,Data2]</span>, requiring only <span class="code">CRC1</span>, <span class="code">CRC2</span>, and <span class="code">Size2</span>. </p> </p></div> <p><a name="adler32-2"></a><span class="bold_code">adler32(Z, Data) -> CheckSum</span><br><div class="REFBODY"> <p>Types:</p> <div class="REFTYPES"><span class="bold_code">Z = <span class="bold_code"><a href="#type-zstream">zstream()</a></span></span></div> <div class="REFTYPES"><span class="bold_code">Data = iodata()</span></div> <div class="REFTYPES"><span class="bold_code">CheckSum = integer()</span></div> </div></p> <div class="REFBODY"><p> <p>Calculate the Adler-32 checksum for <span class="code">Data</span>.</p> </p></div> <p><a name="adler32-3"></a><span class="bold_code">adler32(Z, PrevAdler, Data) -> CheckSum</span><br><div class="REFBODY"> <p>Types:</p> <div class="REFTYPES"><span class="bold_code">Z = <span class="bold_code"><a href="#type-zstream">zstream()</a></span></span></div> <div class="REFTYPES"><span class="bold_code">PrevAdler = integer()</span></div> <div class="REFTYPES"><span class="bold_code">Data = iodata()</span></div> <div class="REFTYPES"><span class="bold_code">CheckSum = integer()</span></div> </div></p> <div class="REFBODY"><p> <p>Update a running Adler-32 checksum for <span class="code">Data</span>. If <span class="code">Data</span> is the empty binary or the empty iolist, this function returns the required initial value for the checksum.</p> <div class="example"><pre> Crc = lists:foldl(fun(Data,Crc0) -> zlib:adler32(Z, Crc0, Data), end, zlib:adler32(Z,<< >>), Datas)</pre></div> </p></div> <p><a name="adler32_combine-4"></a><span class="bold_code">adler32_combine(Z, Adler1, Adler2, Size2) -> Adler</span><br><div class="REFBODY"> <p>Types:</p> <div class="REFTYPES"><span class="bold_code">Z = <span class="bold_code"><a href="#type-zstream">zstream()</a></span></span></div> <div class="REFTYPES"><span class="bold_code">Adler = Adler1 = Adler2 = Size2 = integer()</span></div> <div class="REFTYPES"><span class="bold_code"></span></div> <div class="REFTYPES"><span class="bold_code"></span></div> <div class="REFTYPES"><span class="bold_code"></span></div> </div></p> <div class="REFBODY"><p> <p>Combine two Adler-32 checksums into one. For two binaries or iolists, <span class="code">Data1</span> and <span class="code">Data2</span> with sizes of <span class="code">Size1</span> and <span class="code">Size2</span>, with Adler-32 checksums <span class="code">Adler1</span> and <span class="code">Adler2</span>. <span class="code">adler32_combine/4</span> returns the <span class="code">Adler</span> checksum of <span class="code">[Data1,Data2]</span>, requiring only <span class="code">Adler1</span>, <span class="code">Adler2</span>, and <span class="code">Size2</span>. </p> </p></div> <p><a name="compress-1"></a><span class="bold_code">compress(Data) -> Compressed</span><br><div class="REFBODY"> <p>Types:</p> <div class="REFTYPES"><span class="bold_code">Data = iodata()</span></div> <div class="REFTYPES"><span class="bold_code">Compressed = binary()</span></div> </div></p> <div class="REFBODY"><p> <p>Compress data (with zlib headers and checksum).</p> </p></div> <p><a name="uncompress-1"></a><span class="bold_code">uncompress(Data) -> Decompressed</span><br><div class="REFBODY"> <p>Types:</p> <div class="REFTYPES"><span class="bold_code">Data = iodata()</span></div> <div class="REFTYPES"><span class="bold_code">Decompressed = binary()</span></div> </div></p> <div class="REFBODY"><p> <p>Uncompress data (with zlib headers and checksum).</p> </p></div> <p><a name="zip-1"></a><span class="bold_code">zip(Data) -> Compressed</span><br><div class="REFBODY"> <p>Types:</p> <div class="REFTYPES"><span class="bold_code">Data = iodata()</span></div> <div class="REFTYPES"><span class="bold_code">Compressed = binary()</span></div> </div></p> <div class="REFBODY"><p> <p>Compress data (without zlib headers and checksum).</p> </p></div> <p><a name="unzip-1"></a><span class="bold_code">unzip(Data) -> Decompressed</span><br><div class="REFBODY"> <p>Types:</p> <div class="REFTYPES"><span class="bold_code">Data = iodata()</span></div> <div class="REFTYPES"><span class="bold_code">Decompressed = binary()</span></div> </div></p> <div class="REFBODY"><p> <p>Uncompress data (without zlib headers and checksum).</p> </p></div> <p><a name="gzip-1"></a><span class="bold_code">gzip(Data) -> Compressed</span><br><div class="REFBODY"> <p>Types:</p> <div class="REFTYPES"><span class="bold_code">Data = iodata()</span></div> <div class="REFTYPES"><span class="bold_code">Compressed = binary()</span></div> </div></p> <div class="REFBODY"><p> <p>Compress data (with gz headers and checksum).</p> </p></div> <p><a name="gunzip-1"></a><span class="bold_code">gunzip(Data) -> Decompressed</span><br><div class="REFBODY"> <p>Types:</p> <div class="REFTYPES"><span class="bold_code">Data = iodata()</span></div> <div class="REFTYPES"><span class="bold_code">Decompressed = binary()</span></div> </div></p> <div class="REFBODY"><p> <p>Uncompress data (with gz headers and checksum).</p> </p></div> </div> <div class="footer"> <hr> <p>Copyright © 1997-2011 Ericsson AB. All Rights Reserved.</p> </div> </div> </div></body> </html>