⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gnet-pack.html

📁 GNet是一个简单的网络库。它是目标定向的
💻 HTML
📖 第 1 页 / 共 2 页
字号:
<HTML><HEAD><TITLE>pack</TITLE><METANAME="GENERATOR"CONTENT="Modular DocBook HTML Stylesheet Version 1.77+"><LINKREL="HOME"TITLE="GNet Network Library Reference Manual"HREF="book1.html"><LINKREL="UP"TITLE="GNet Library Reference"HREF="libgnet-reference.html"><LINKREL="PREVIOUS"TITLE="iochannel"HREF="gnet-iochannel.html"><LINKREL="NEXT"TITLE="md5"HREF="gnet-md5.html"></HEAD><BODYCLASS="REFENTRY"BGCOLOR="#FFFFFF"TEXT="#000000"LINK="#0000FF"VLINK="#840084"ALINK="#0000FF"><DIVCLASS="NAVHEADER"><TABLEWIDTH="100%"BORDER="0"BGCOLOR="#000000"CELLPADDING="1"CELLSPACING="0"><TR><THCOLSPAN="4"ALIGN="center"><FONTCOLOR="#FFFFFF"SIZE="5">GNet Network Library Reference Manual</FONT></TH></TR><TR><TDWIDTH="25%"BGCOLOR="#C00000"ALIGN="left"><AHREF="gnet-iochannel.html"><FONTCOLOR="#FFFFFF"SIZE="3"><B>&#60;&#60;&#60; Previous Page</B></FONT></A></TD><TDWIDTH="25%"BGCOLOR="#0000C0"ALIGN="center"><FONTCOLOR="#FFFFFF"SIZE="3"><B><AHREF="book1.html"><FONTCOLOR="#FFFFFF"SIZE="3"><B>Home</B></FONT></A></B></FONT></TD><TDWIDTH="25%"BGCOLOR="#00C000"ALIGN="center"><FONTCOLOR="#FFFFFF"SIZE="3"><B><AHREF="libgnet-reference.html"><FONTCOLOR="#FFFFFF"SIZE="3"><B>Up</B></FONT></A></B></FONT></TD><TDWIDTH="25%"BGCOLOR="#C00000"ALIGN="right"><AHREF="gnet-md5.html"><FONTCOLOR="#FFFFFF"SIZE="3"><B>Next Page &#62;&#62;&#62;</B></FONT></A></TD></TR></TABLE></DIV><H1><ANAME="GNET-PACK"></A>pack</H1><DIVCLASS="REFNAMEDIV"><ANAME="AEN3306"></A><H2>Name</H2>pack&nbsp;--&nbsp;</DIV><DIVCLASS="REFSYNOPSISDIV"><ANAME="AEN3309"></A><H2>Synopsis</H2><TABLEBORDER="0"BGCOLOR="#D6E8FF"WIDTH="100%"CELLPADDING="6"><TR><TD><PRECLASS="SYNOPSIS">&#13;<GTKDOCLINKHREF="GINT">gint</GTKDOCLINK>        <AHREF="gnet-pack.html">gnet_pack</A>                       (const <GTKDOCLINKHREF="GCHAR">gchar</GTKDOCLINK> *format,                                             <GTKDOCLINKHREF="GCHAR">gchar</GTKDOCLINK> *buffer,                                             const <GTKDOCLINKHREF="GUINT">guint</GTKDOCLINK> len,                                             ...);<GTKDOCLINKHREF="GINT">gint</GTKDOCLINK>        <AHREF="gnet-pack.html#GNET-PACK-STRDUP">gnet_pack_strdup</A>                (const <GTKDOCLINKHREF="GCHAR">gchar</GTKDOCLINK> *format,                                             <GTKDOCLINKHREF="GCHAR">gchar</GTKDOCLINK> **buffer,                                             ...);<GTKDOCLINKHREF="GINT">gint</GTKDOCLINK>        <AHREF="gnet-pack.html#GNET-VPACK">gnet_vpack</A>                      (const <GTKDOCLINKHREF="GCHAR">gchar</GTKDOCLINK> *format,                                             <GTKDOCLINKHREF="GCHAR">gchar</GTKDOCLINK> *buffer,                                             const <GTKDOCLINKHREF="GUINT">guint</GTKDOCLINK> len,                                             va_list args);<GTKDOCLINKHREF="GINT">gint</GTKDOCLINK>        <AHREF="gnet-pack.html#GNET-CALCSIZE">gnet_calcsize</A>                   (const <GTKDOCLINKHREF="GCHAR">gchar</GTKDOCLINK> *format,                                             ...);<GTKDOCLINKHREF="GINT">gint</GTKDOCLINK>        <AHREF="gnet-pack.html#GNET-VCALCSIZE">gnet_vcalcsize</A>                  (const <GTKDOCLINKHREF="GCHAR">gchar</GTKDOCLINK> *format,                                             va_list args);<GTKDOCLINKHREF="GINT">gint</GTKDOCLINK>        <AHREF="gnet-pack.html#GNET-UNPACK">gnet_unpack</A>                     (const <GTKDOCLINKHREF="GCHAR">gchar</GTKDOCLINK> *format,                                             <GTKDOCLINKHREF="GCHAR">gchar</GTKDOCLINK> *buffer,                                             <GTKDOCLINKHREF="GUINT">guint</GTKDOCLINK> len,                                             ...);<GTKDOCLINKHREF="GINT">gint</GTKDOCLINK>        <AHREF="gnet-pack.html#GNET-VUNPACK">gnet_vunpack</A>                    (const <GTKDOCLINKHREF="GCHAR">gchar</GTKDOCLINK> *format,                                             <GTKDOCLINKHREF="GCHAR">gchar</GTKDOCLINK> *buffer,                                             <GTKDOCLINKHREF="GUINT">guint</GTKDOCLINK> len,                                             va_list args);</PRE></TD></TR></TABLE></DIV><DIVCLASS="REFSECT1"><ANAME="AEN3342"></A><H2>Description</H2><P></P></DIV><DIVCLASS="REFSECT1"><ANAME="AEN3345"></A><H2>Details</H2><DIVCLASS="REFSECT2"><ANAME="AEN3347"></A><H3><ANAME="GNET-PACK"></A>gnet_pack ()</H3><TABLEBORDER="0"BGCOLOR="#D6E8FF"WIDTH="100%"CELLPADDING="6"><TR><TD><PRECLASS="PROGRAMLISTING"><GTKDOCLINKHREF="GINT">gint</GTKDOCLINK>        gnet_pack                       (const <GTKDOCLINKHREF="GCHAR">gchar</GTKDOCLINK> *format,                                             <GTKDOCLINKHREF="GCHAR">gchar</GTKDOCLINK> *buffer,                                             const <GTKDOCLINKHREF="GUINT">guint</GTKDOCLINK> len,                                             ...);</PRE></TD></TR></TABLE><P>The pack format string is a list of types.  Each type is represented by a character.  Most types can be prefixed by an integer, which represents how many times it is repeated (eg, "4i2b" is equivalent to "iiiibb".</P><P> Native size/order is the default.  If the first character of FORMAT is &lt; then little endian order and standard size are used. If the first character is &gt; or !, then big endian (or network) order and standard size are used.  Standard sizes are 1 byte for chars, 2 bytes for shorts, and 4 bytes for ints and longs. x is a pad byte.  The pad byte is the NULL character.</P><P> b/B are signed/unsigned chars</P><P> h/H are signed/unsigned shorts</P><P> i/I are signed/unsigned ints</P><P> l/L are signed/unsigned longs</P><P> f/D are floats/doubles (always native order/size)  v is a void pointer (always native size)</P><P> s is a zero-terminated string.  REPEAT is repeat.</P><P> S is a zero-padded string of maximum length REPEAT.  We write up-to a NULL character or REPEAT characters, whichever comes first.  We then write NULL characters up to a total of REPEAT characters.  Special case: If REPEAT is not specified, we write the string as a non-NULL-terminated string (note that it can't be unpacked easily then).</P><P> r is a byte array of NEXT bytes.  NEXT is the next argument and is an integer.  REPEAT is repeat.  (r is from "raw")</P><P> R is a byte array of REPEAT bytes.  REPEAT must be specified.</P><P> p is a Pascal string.  The string passed is a NULL-termiated string of less than 256 character.  The string writen is a non-NULL-terminated string with a byte before the string storing the string length.  REPEAT is repeat.</P><P> Mnemonics: (B)yte, s(H)ort, (I)nteger, (F)loat, (D)ouble, (V)oid pointer, (S)tring, (R)aw</P><P> pack was mostly inspired by Python's pack, with some awareness of Perl's pack.  We don't do Python 0-repeat-is-alignment.  Submit a patch if you really want it.</P><P></P><P></P><TABLECLASS="VARIABLELIST"BORDER="0"CELLSPACING="0"CELLPADDING="4"WIDTH="100%"BGCOLOR="#FFD0D0"><TBODY><TR><TDALIGN="RIGHT"VALIGN="TOP"WIDTH="20%"><ANAME="AEN3371"><SPANSTYLE="white-space: nowrap"><TTCLASS="PARAMETER"><I>format</I></TT>&nbsp;:</SPAN></TD><TDALIGN="LEFT"VALIGN="TOP"WIDTH="80%"><P></P></TD></TR><TR><TDALIGN="RIGHT"VALIGN="TOP"WIDTH="20%"><ANAME="AEN3376"><SPANSTYLE="white-space: nowrap"><TTCLASS="PARAMETER"><I>buffer</I></TT>&nbsp;:</SPAN></TD><TDALIGN="LEFT"VALIGN="TOP"WIDTH="80%"><P></P></TD></TR><TR><TDALIGN="RIGHT"VALIGN="TOP"WIDTH="20%"><ANAME="AEN3381"><SPANSTYLE="white-space: nowrap"><TTCLASS="PARAMETER"><I>len</I></TT>&nbsp;:</SPAN></TD><TDALIGN="LEFT"VALIGN="TOP"WIDTH="80%"><P></P></TD></TR><TR><TDALIGN="RIGHT"VALIGN="TOP"WIDTH="20%"><ANAME="AEN3386"><SPANSTYLE="white-space: nowrap"><TTCLASS="PARAMETER"><I>...</I></TT>&nbsp;:</SPAN></TD><TDALIGN="LEFT"VALIGN="TOP"WIDTH="80%"><P></P></TD></TR><TR><TDALIGN="RIGHT"VALIGN="TOP"WIDTH="20%"><ANAME="AEN3391"><SPANSTYLE="white-space: nowrap"><SPANCLASS="emphasis"><ICLASS="EMPHASIS">Returns</I></SPAN> :</SPAN></TD><TDALIGN="LEFT"VALIGN="TOP"WIDTH="80%"><P>&#13;</P></TD></TR></TBODY></TABLE></DIV><HR><DIVCLASS="REFSECT2"><ANAME="AEN3396"></A><H3><ANAME="GNET-PACK-STRDUP"></A>gnet_pack_strdup ()</H3><TABLEBORDER="0"BGCOLOR="#D6E8FF"WIDTH="100%"CELLPADDING="6"><TR><TD><PRECLASS="PROGRAMLISTING"><GTKDOCLINKHREF="GINT">gint</GTKDOCLINK>        gnet_pack_strdup                (const <GTKDOCLINKHREF="GCHAR">gchar</GTKDOCLINK> *format,                                             <GTKDOCLINKHREF="GCHAR">gchar</GTKDOCLINK> **buffer,                                             ...);</PRE></TD></TR></TABLE><P>Packs the arguments into an allocated buffer.  Caller is responsible for deallocating the buffer.</P><P></P><P></P><TABLECLASS="VARIABLELIST"BORDER="0"CELLSPACING="0"CELLPADDING="4"WIDTH="100%"BGCOLOR="#FFD0D0"><TBODY><TR><TDALIGN="RIGHT"VALIGN="TOP"WIDTH="20%"><ANAME="AEN3406"><SPANSTYLE="white-space: nowrap"><TTCLASS="PARAMETER"><I>format</I></TT>&nbsp;:</SPAN></TD><TDALIGN="LEFT"VALIGN="TOP"WIDTH="80%"><P></P></TD></TR><TR><TDALIGN="RIGHT"VALIGN="TOP"WIDTH="20%"><ANAME="AEN3411"><SPANSTYLE="white-space: nowrap"><TTCLASS="PARAMETER"><I>buffer</I></TT>&nbsp;:</SPAN></TD><TDALIGN="LEFT"VALIGN="TOP"WIDTH="80%"><P></P></TD></TR><TR><TDALIGN="RIGHT"VALIGN="TOP"WIDTH="20%"><ANAME="AEN3416"><SPANSTYLE="white-space: nowrap"><TTCLASS="PARAMETER"><I>...</I></TT>&nbsp;:</SPAN></TD><TDALIGN="LEFT"VALIGN="TOP"WIDTH="80%"><P></P></TD></TR><TR><TDALIGN="RIGHT"VALIGN="TOP"WIDTH="20%"><ANAME="AEN3421"><SPANSTYLE="white-space: nowrap"><SPANCLASS="emphasis"><ICLASS="EMPHASIS">Returns</I></SPAN> :</SPAN></TD><TDALIGN="LEFT"VALIGN="TOP"WIDTH="80%"><P>&#13;</P></TD></TR></TBODY></TABLE></DIV><HR><DIVCLASS="REFSECT2"><ANAME="AEN3426"></A><H3><ANAME="GNET-VPACK"></A>gnet_vpack ()</H3><TABLEBORDER="0"BGCOLOR="#D6E8FF"WIDTH="100%"CELLPADDING="6"><TR><TD><PRECLASS="PROGRAMLISTING"><GTKDOCLINKHREF="GINT">gint</GTKDOCLINK>        gnet_vpack                      (const <GTKDOCLINKHREF="GCHAR">gchar</GTKDOCLINK> *format,                                             <GTKDOCLINKHREF="GCHAR">gchar</GTKDOCLINK> *buffer,                                             const <GTKDOCLINKHREF="GUINT">guint</GTKDOCLINK> len,                                             va_list args);</PRE></TD></TR></TABLE><P>Var arg interface to <AHREF="gnet-pack.html">gnet_pack</A>().  See <AHREF="gnet-pack.html">gnet_pack</A>() for format information.</P><P></P><P></P><TABLECLASS="VARIABLELIST"BORDER="0"CELLSPACING="0"CELLPADDING="4"WIDTH="100%"BGCOLOR="#FFD0D0"><TBODY><TR><TDALIGN="RIGHT"VALIGN="TOP"WIDTH="20%"><ANAME="AEN3439"><SPANSTYLE="white-space: nowrap"><TTCLASS="PARAMETER"><I>format</I></TT>&nbsp;:</SPAN></TD><TDALIGN="LEFT"VALIGN="TOP"WIDTH="80%"><P></P></TD></TR><TR><TDALIGN="RIGHT"VALIGN="TOP"WIDTH="20%"><ANAME="AEN3444"><SPANSTYLE="white-space: nowrap"><TTCLASS="PARAMETER"><I>buffer</I></TT>&nbsp;:</SPAN></TD><TDALIGN="LEFT"VALIGN="TOP"WIDTH="80%"><P></P></TD></TR><TR><TDALIGN="RIGHT"VALIGN="TOP"WIDTH="20%"><ANAME="AEN3449"><SPANSTYLE="white-space: nowrap"><TTCLASS="PARAMETER"><I>len</I></TT>&nbsp;:</SPAN></TD><TDALIGN="LEFT"VALIGN="TOP"WIDTH="80%"><P></P></TD></TR><TR><TDALIGN="RIGHT"VALIGN="TOP"WIDTH="20%"><ANAME="AEN3454"><SPANSTYLE="white-space: nowrap"><TTCLASS="PARAMETER"><I>args</I

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -