<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML ><HEAD ><TITLE >Utility and Error Functions</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" TITLE="GTK+ 2.0 Tutorial" HREF="book1.html"><LINK REL="UP" TITLE="GLib" HREF="c2023.html"><LINK REL="PREVIOUS" TITLE="String Handling" HREF="x2080.html"><LINK REL="NEXT" TITLE="GTK's rc Files" HREF="c2116.html"></HEAD ><BODY CLASS="SECT1" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#840084" ALINK="#0000FF" ><DIV CLASS="NAVHEADER" ><TABLE SUMMARY="Header navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TH COLSPAN="3" ALIGN="center" >GTK+ 2.0 Tutorial</TH ></TR ><TR ><TD WIDTH="10%" ALIGN="left" VALIGN="bottom" ><A HREF="x2080.html" ACCESSKEY="P" ><<< Previous</A ></TD ><TD WIDTH="80%" ALIGN="center" VALIGN="bottom" >GLib</TD ><TD WIDTH="10%" ALIGN="right" VALIGN="bottom" ><A HREF="c2116.html" ACCESSKEY="N" >Next >>></A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><DIV CLASS="SECT1" ><H1 CLASS="SECT1" ><A NAME="SEC-UTILITYANDERRORFUNCTIONS" >Utility and Error Functions</A ></H1 ><TABLE BORDER="0" BGCOLOR="#E0E0E0" WIDTH="100%" ><TR ><TD ><PRE CLASS="PROGRAMLISTING" >gchar *g_strdup( const gchar *str );</PRE ></TD ></TR ></TABLE ><P >Replacement strdup function. Copies the original strings contents to newly allocated memory, and returns a pointer to it.</P ><TABLE BORDER="0" BGCOLOR="#E0E0E0" WIDTH="100%" ><TR ><TD ><PRE CLASS="PROGRAMLISTING" >gchar *g_strerror( gint errnum );</PRE ></TD ></TR ></TABLE ><P >I recommend using this for all error messages. It's much nicer, and more portable than perror() or others. The output is usually of the form:</P ><TABLE BORDER="0" BGCOLOR="#E0E0E0" WIDTH="100%" ><TR ><TD ><PRE CLASS="PROGRAMLISTING" >program name:function that failed:file or further description:strerror</PRE ></TD ></TR ></TABLE ><P >Here's an example of one such call used in our hello_world program:</P ><TABLE BORDER="0" BGCOLOR="#E0E0E0" WIDTH="100%" ><TR ><TD ><PRE CLASS="PROGRAMLISTING" >g_print("hello_world:open:%s:%s\n", filename, g_strerror(errno));</PRE ></TD ></TR ></TABLE ><TABLE BORDER="0" BGCOLOR="#E0E0E0" WIDTH="100%" ><TR ><TD ><PRE CLASS="PROGRAMLISTING" >void g_error( gchar *format, ... );</PRE ></TD ></TR ></TABLE ><P >Prints an error message. The format is just like printf, but it prepends "** ERROR **: " to your message, and exits the program. Use only for fatal errors.</P ><TABLE BORDER="0" BGCOLOR="#E0E0E0" WIDTH="100%" ><TR ><TD ><PRE CLASS="PROGRAMLISTING" >void g_warning( gchar *format, ... );</PRE ></TD ></TR ></TABLE ><P >Same as above, but prepends "** WARNING **: ", and does not exit the program.</P ><TABLE BORDER="0" BGCOLOR="#E0E0E0" WIDTH="100%" ><TR ><TD ><PRE CLASS="PROGRAMLISTING" >void g_message( gchar *format, ... );</PRE ></TD ></TR ></TABLE ><P >Prints "message: " prepended to the string you pass in.</P ><TABLE BORDER="0" BGCOLOR="#E0E0E0" WIDTH="100%" ><TR ><TD ><PRE CLASS="PROGRAMLISTING" >void g_print( gchar *format, ... );</PRE ></TD ></TR ></TABLE ><P >Replacement for printf().</P ><P >And our last function:</P ><TABLE BORDER="0" BGCOLOR="#E0E0E0" WIDTH="100%" ><TR ><TD ><PRE CLASS="PROGRAMLISTING" >gchar *g_strsignal( gint signum );</PRE ></TD ></TR ></TABLE ><P >Prints out the name of the Unix system signal given the signal number. Useful in generic signal handling functions.</P ><P >All of the above are more or less just stolen from glib.h. If anyone cares to document any function, just send me an email!</P ></DIV ><DIV CLASS="NAVFOOTER" ><HR ALIGN="LEFT" WIDTH="100%"><TABLE SUMMARY="Footer navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" ><A HREF="x2080.html" ACCESSKEY="P" ><<< Previous</A ></TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="book1.html" ACCESSKEY="H" >Home</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" ><A HREF="c2116.html" ACCESSKEY="N" >Next >>></A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" >String Handling</TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="c2023.html" ACCESSKEY="U" >Up</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" >GTK's rc Files</TD ></TR ></TABLE ></DIV ></BODY ></HTML >