<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <title>incron: ict-main.cpp File Reference</title> <link href="doxygen.css" rel="stylesheet" type="text/css"> <link href="tabs.css" rel="stylesheet" type="text/css"> </head><body> <!-- Generated by Doxygen 1.5.6 --> <div class="navigation" id="top"> <div class="tabs"> <ul> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="annotated.html"><span>Classes</span></a></li> <li class="current"><a href="files.html"><span>Files</span></a></li> </ul> </div> </div> <div class="contents"> <h1>ict-main.cpp File Reference</h1>inotify cron table manipulator main file <a href="#_details">More...</a> <p> <code>#include <argp.h></code><br> <code>#include <pwd.h></code><br> <code>#include <string></code><br> <code>#include <stdio.h></code><br> <code>#include <unistd.h></code><br> <code>#include <sys/stat.h></code><br> <code>#include <sys/wait.h></code><br> <code>#include <sys/inotify.h></code><br> <code>#include <fcntl.h></code><br> <code>#include <stdlib.h></code><br> <code>#include <limits.h></code><br> <code>#include <cstring></code><br> <code>#include "<a class="el" href="inotify-cxx_8h-source.html">inotify-cxx.h</a>"</code><br> <code>#include "<a class="el" href="appargs_8h-source.html">appargs.h</a>"</code><br> <code>#include "<a class="el" href="incron_8h-source.html">incron.h</a>"</code><br> <code>#include "<a class="el" href="incrontab_8h-source.html">incrontab.h</a>"</code><br> <code>#include "<a class="el" href="incroncfg_8h-source.html">incroncfg.h</a>"</code><br> <table border="0" cellpadding="0" cellspacing="0"> <tr><td></td></tr> <tr><td colspan="2"><br><h2>Defines</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="ict-main_8cpp.html#f8f73d7f483989d3b4bbc8213f27bb22">INCRON_ALT_EDITOR</a> "/etc/alternatives/editor"</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Alternative editor. <a href="#f8f73d7f483989d3b4bbc8213f27bb22"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="ict-main_8cpp.html#6a2f9f3f9bb0bc104a2508922351cbcf">INCRON_DEFAULT_EDITOR</a> "vim"</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Default (hard-wired) editor. <a href="#6a2f9f3f9bb0bc104a2508922351cbcf"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="ict-main_8cpp.html#6ed10f9f4345ceb93abfe9cbbf7b13e1">INCRONTAB_VERSION</a> INCRONTAB_NAME " " INCRON_VERSION</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">incrontab version string <a href="#6ed10f9f4345ceb93abfe9cbbf7b13e1"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="ict-main_8cpp.html#3ebbec090714b7c50bf0ce0461057e8d">INCRONTAB_DESCRIPTION</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">incrontab description string <a href="#3ebbec090714b7c50bf0ce0461057e8d"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="ict-main_8cpp.html#1a166287e8db03438a38696008fd6bf1">INCRONTAB_HELP</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">incrontab help string <a href="#1a166287e8db03438a38696008fd6bf1"></a><br></td></tr> <tr><td colspan="2"><br><h2>Functions</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="ict-main_8cpp.html#74afba1909f36ca27634e1054f4b4ec0">copy_from_file</a> (const std::string &rPath, const std::string &rUser)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Copies a file to an user table. <a href="#74afba1909f36ca27634e1054f4b4ec0"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="ict-main_8cpp.html#4ce9f57037e64edfe2e779b823a1aad9">remove_table</a> (const std::string &rUser)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Removes an user table. <a href="#4ce9f57037e64edfe2e779b823a1aad9"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="ict-main_8cpp.html#760f3abce0893d69e851873885eb837c">list_table</a> (const std::string &rUser)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Lists an user table. <a href="#760f3abce0893d69e851873885eb837c"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="ict-main_8cpp.html#3d3ccb44458717197db21f6084dcb071">edit_table</a> (const std::string &rUser)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Allows to edit an user table. <a href="#3d3ccb44458717197db21f6084dcb071"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="ict-main_8cpp.html#16767b7191e3f5d6ff98e0d8eb0af5c1">list_types</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Prints the list of all available inotify event types. <a href="#16767b7191e3f5d6ff98e0d8eb0af5c1"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="ict-main_8cpp.html#e5fd9a4c4187e064e81a6059a7d3a8cc">reload_table</a> (const std::string &rUser)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Reloads an user table. <a href="#e5fd9a4c4187e064e81a6059a7d3a8cc"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="ict-main_8cpp.html#3c04138a5bfe5d72780bb7e82a18e627">main</a> (int argc, char **argv)</td></tr> </table> <hr><a name="_details"></a><h2>Detailed Description</h2> inotify cron table manipulator main file <p> inotify cron system<p> Copyright (C) 2006, 2007, 2008 Lukas Jelinek, <<a href="mailto:lukas@aiken.cz">lukas@aiken.cz</a>><p> This program is free software; you can use it, redistribute it and/or modify it under the terms of the GNU General Public License, version 2 (see LICENSE-GPL).<p> Credits: kolter (fix for segfaulting on --user) <hr><h2>Define Documentation</h2> <a class="anchor" name="f8f73d7f483989d3b4bbc8213f27bb22"></a><!-- doxytag: member="ict-main.cpp::INCRON_ALT_EDITOR" ref="f8f73d7f483989d3b4bbc8213f27bb22" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define INCRON_ALT_EDITOR "/etc/alternatives/editor" </td> </tr> </table> </div> <div class="memdoc"> <p> Alternative editor. <p> </div> </div><p> <a class="anchor" name="6a2f9f3f9bb0bc104a2508922351cbcf"></a><!-- doxytag: member="ict-main.cpp::INCRON_DEFAULT_EDITOR" ref="6a2f9f3f9bb0bc104a2508922351cbcf" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define INCRON_DEFAULT_EDITOR "vim" </td> </tr> </table> </div> <div class="memdoc"> <p> Default (hard-wired) editor. <p> </div> </div><p> <a class="anchor" name="3ebbec090714b7c50bf0ce0461057e8d"></a><!-- doxytag: member="ict-main.cpp::INCRONTAB_DESCRIPTION" ref="3ebbec090714b7c50bf0ce0461057e8d" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define INCRONTAB_DESCRIPTION </td> </tr> </table> </div> <div class="memdoc"> <p> <b>Value:</b><div class="fragment"><pre class="fragment"><span class="stringliteral">"incrontab - inotify cron table manipulator\n"</span> \ <span class="stringliteral">"(c) Lukas Jelinek, 2006, 2007, 208"</span> </pre></div>incrontab description string <p> </div> </div><p> <a class="anchor" name="1a166287e8db03438a38696008fd6bf1"></a><!-- doxytag: member="ict-main.cpp::INCRONTAB_HELP" ref="1a166287e8db03438a38696008fd6bf1" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define INCRONTAB_HELP </td> </tr> </table> </div> <div class="memdoc"> <p> <b>Value:</b><div class="fragment"><pre class="fragment"><a class="code" href="ict-main_8cpp.html#3ebbec090714b7c50bf0ce0461057e8d" title="incrontab description string">INCRONTAB_DESCRIPTION</a> <span class="stringliteral">"\n\n"</span> \ <span class="stringliteral">"usage: incrontab [<options>] <operation>\n"</span> \ <span class="stringliteral">" incrontab [<options>] <FILE-TO-IMPORT>\n\n"</span> \ <span class="stringliteral">"<operation> may be one of the following:\n"</span> \ <span class="stringliteral">" -?, --about gives short information about program\n"</span> \ <span class="stringliteral">" -h, --help prints this help text\n"</span> \ <span class="stringliteral">" -l, --list lists user table\n"</span> \ <span class="stringliteral">" -r, --remove removes user table\n"</span> \ <span class="stringliteral">" -e, --edit provides editting user table\n"</span> \ <span class="stringliteral">" -t, --types list supported event types\n"</span> \ <span class="stringliteral">" -d, --reload request incrond to reload user table\n"</span> \ <span class="stringliteral">" -V, --version prints program version\n\n"</span> \ <span class="stringliteral">"\n"</span> \ <span class="stringliteral">"These options may be used:\n"</span> \ <span class="stringliteral">" -u <USER>, --user=<USER> overrides current user (requires root privileges)\n"</span> \ <span class="stringliteral">" -f <FILE>, --config=<FILE> overrides default configuration file (requires root privileges)\n\n"</span> \ <span class="stringliteral">"For reporting bugs please use http://bts.aiken.cz\n"</span> </pre></div>incrontab help string <p> </div> </div><p> <a class="anchor" name="6ed10f9f4345ceb93abfe9cbbf7b13e1"></a><!-- doxytag: member="ict-main.cpp::INCRONTAB_VERSION" ref="6ed10f9f4345ceb93abfe9cbbf7b13e1" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define INCRONTAB_VERSION INCRONTAB_NAME " " INCRON_VERSION </td> </tr> </table> </div> <div class="memdoc"> <p> incrontab version string <p> </div> </div><p> <hr><h2>Function Documentation</h2> <a class="anchor" name="74afba1909f36ca27634e1054f4b4ec0"></a><!-- doxytag: member="ict-main.cpp::copy_from_file" ref="74afba1909f36ca27634e1054f4b4ec0" args="(const std::string &rPath, const std::string &rUser)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool copy_from_file </td> <td>(</td> <td class="paramtype">const std::string & </td> <td class="paramname"> <em>rPath</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const std::string & </td> <td class="paramname"> <em>rUser</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p> Copies a file to an user table. <p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>rPath</em> </td><td>path to file </td></tr> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>rUser</em> </td><td>user name </td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>true = success, false = failure </dd></dl> </div> </div><p> <a class="anchor" name="3d3ccb44458717197db21f6084dcb071"></a><!-- doxytag: member="ict-main.cpp::edit_table" ref="3d3ccb44458717197db21f6084dcb071" args="(const std::string &rUser)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool edit_table </td> <td>(</td> <td class="paramtype">const std::string & </td> <td class="paramname"> <em>rUser</em> </td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p> Allows to edit an user table. <p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>rUser</em> </td><td>user name </td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>true = success, false = failure</dd></dl> <dl class="attention" compact><dt><b>Attention:</b></dt><dd>This function is very complex and may contain various bugs including security ones. Please keep it in mind.. </dd></dl> </div> </div><p> <a class="anchor" name="760f3abce0893d69e851873885eb837c"></a><!-- doxytag: member="ict-main.cpp::list_table" ref="760f3abce0893d69e851873885eb837c" args="(const std::string &rUser)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool list_table </td> <td>(</td> <td class="paramtype">const std::string & </td> <td class="paramname"> <em>rUser</em> </td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p> Lists an user table. <p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>rUser</em> </td><td>user name </td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>true = success, false = failure </dd></dl> </div> </div><p> <a class="anchor" name="16767b7191e3f5d6ff98e0d8eb0af5c1"></a><!-- doxytag: member="ict-main.cpp::list_types" ref="16767b7191e3f5d6ff98e0d8eb0af5c1" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void list_types </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p> Prints the list of all available inotify event types. <p> </div> </div><p> <a class="anchor" name="3c04138a5bfe5d72780bb7e82a18e627"></a><!-- doxytag: member="ict-main.cpp::main" ref="3c04138a5bfe5d72780bb7e82a18e627" args="(int argc, char **argv)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int main </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"> <em>argc</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">char ** </td> <td class="paramname"> <em>argv</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="e5fd9a4c4187e064e81a6059a7d3a8cc"></a><!-- doxytag: member="ict-main.cpp::reload_table" ref="e5fd9a4c4187e064e81a6059a7d3a8cc" args="(const std::string &rUser)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool reload_table </td> <td>(</td> <td class="paramtype">const std::string & </td> <td class="paramname"> <em>rUser</em> </td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p> Reloads an user table. <p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>rUser</em> </td><td>user name </td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>true = success, false = otherwise </dd></dl> </div> </div><p> <a class="anchor" name="4ce9f57037e64edfe2e779b823a1aad9"></a><!-- doxytag: member="ict-main.cpp::remove_table" ref="4ce9f57037e64edfe2e779b823a1aad9" args="(const std::string &rUser)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool remove_table </td> <td>(</td> <td class="paramtype">const std::string & </td> <td class="paramname"> <em>rUser</em> </td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p> Removes an user table. <p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>rUser</em> </td><td>user name </td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>true = success, false = failure </dd></dl> </div> </div><p> </div> <hr size="1"><address style="text-align: right;"><small>Generated on Sun Jun 21 22:27:24 2009 for incron by <a href="http://www.doxygen.org/index.html"> <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address> </body> </html>