+static struct task svt = {
+ .post_select = supervisor_post_select,
+ .status = "supervisor task"
+};
+
+static int client_loglevel = LL_ERROR; /* loglevel */
+INIT_STDERR_LOGGING(client_loglevel);
+
+/**
+ * The client program to connect to para_server.
+ *
+ * \param argc Usual argument count.
+ * \param argv Usual argument vector.
+ *
+ * It registers two tasks: The client task that communicates with para_server
+ * and the supervisor task that minitors whether the client task intends to
+ * read from stdin or write to stdout.
+ *
+ * Once it has been determined whether the client command corresponds to a
+ * stdin command (addmood, addimg, ..), either the stdin task or the stdout
+ * task is set up to replace the supervisor task.
+ *
+ * \return EXIT_SUCCESS or EXIT_FAILURE
+ *
+ * \sa client_open(), stdin.c, stdout.c, para_client(1), para_server(1)