| Top |
External command (deprecated)External command (deprecated) — Convenience API for using external command. (deprecated) |
| GQuark | gcut_egg_error_quark () |
| GCutEgg * | gcut_egg_new () |
| GCutEgg * | gcut_egg_new_va_list () |
| GCutEgg * | gcut_egg_new_argv () |
| GCutEgg * | gcut_egg_new_strings () |
| GCutEgg * | gcut_egg_new_array () |
| void | gcut_egg_set_flags () |
| GSpawnFlags | gcut_egg_get_flags () |
| void | gcut_egg_set_env () |
| gchar ** | gcut_egg_get_env () |
| gboolean | gcut_egg_hatch () |
| void | gcut_egg_close () |
| gboolean | gcut_egg_write () |
| GPid | gcut_egg_get_pid () |
| gint | gcut_egg_wait () |
| void | gcut_egg_kill () |
| GIOChannel * | gcut_egg_get_input () |
| GIOChannel * | gcut_egg_get_output () |
| GIOChannel * | gcut_egg_get_error () |
| guint | gcut_egg_get_forced_termination_wait_time () |
| void | gcut_egg_set_forced_termination_wait_time () |
| void | error | Run Last |
| void | error-received | Run Last |
| void | output-received | Run Last |
| void | reaped | Run Last |
GCutEgg encapsulates external command execution,
communication and termination. GCutEgg reports an error
as GError. It can be asserted easily by
gcut_assert_error().
External command is specified to constructor like
gcut_egg_new(), gcut_egg_new_strings() and so
on. External command isn't run at the
time. gcut_egg_hatch() runs specified external command.
Standard/Error outputs of external command are passed by
“output-received”/“error-received” signals
or GIOChannel returned by
gcut_egg_get_output()/gcut_egg_get_error().
gcut_egg_write() writes a chunk to standard input of
external command.
To wait external command finished, gcut_egg_wait() can be
used. It accepts timeout to avoid infinite waiting.
e.g.:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
static GString *output_string; static GCutEgg *egg; void cut_setup (void) { output_string = g_string_new(NULL); egg = NULL; } void cut_teardown (void) { if (output_string) g_string_free(output_string, TRUE); if (egg) g_object_unref(egg); } static void cb_output_received (GCutEgg *egg, const gchar *chunk, gsize size, gpointer user_data) { g_string_append_len(output_string, chunk, size); } void test_echo (void) { GError *error = NULL; egg = gcut_egg_new("echo", "XXX", NULL); g_signal_connect(egg, "output-received", G_CALLBACK(cb_output_received), NULL); gcut_egg_hatch(egg, &error); gcut_assert_error(error); gcut_egg_wait(egg, 1000, &error); gcut_assert_error(error); cut_assert_equal_string("XXX\n", output_string->str); } |
GQuark
gcut_egg_error_quark (void);
gcut_egg_error_quark is deprecated and should not be used in newly-written code.
GCutEgg * gcut_egg_new (const gchar *command,...);
gcut_egg_new has been deprecated since version 1.1.5 and should not be used in newly-written code.
Use gcut_process_new() instead.
Creates a new GCutEgg object that runs command
.
Since: 1.0.6
GCutEgg * gcut_egg_new_va_list (const gchar *command,va_list args);
gcut_egg_new_va_list has been deprecated since version 1.1.5 and should not be used in newly-written code.
Use gcut_process_new_va_list() instead.
Creates a new GCutEgg object that runs command
.
Since: 1.0.6
GCutEgg * gcut_egg_new_argv (gint argc,gchar **argv);
gcut_egg_new_argv has been deprecated since version 1.1.5 and should not be used in newly-written code.
Use gcut_process_new_argv() instead.
Creates a new GCutEgg object that runs command
.
argc |
the number of elements of |
|
argv |
the external command name to be ran and arguments of it. |
Since: 1.0.6
GCutEgg *
gcut_egg_new_strings (const gchar **command);
gcut_egg_new_strings has been deprecated since version 1.1.5 and should not be used in newly-written code.
Use gcut_process_new_strings() instead.
Creates a new GCutEgg object that runs command
.
Since: 1.0.6
GCutEgg *
gcut_egg_new_array (GArray *command);
gcut_egg_new_array has been deprecated since version 1.1.5 and should not be used in newly-written code.
Use gcut_process_new_array() instead.
Creates a new GCutEgg object that runs command
.
command |
the external command name to be ran and arguments of it. The GArray should be zero-terminated. |
Since: 1.0.6
void gcut_egg_set_flags (GCutEgg *egg,GSpawnFlags flags);
gcut_egg_set_flags has been deprecated since version 1.1.5 and should not be used in newly-written code.
Use gcut_process_set_flags() instead.
Sets flags
for spawning.
Since: 1.0.6
GSpawnFlags
gcut_egg_get_flags (GCutEgg *egg);
gcut_egg_get_flags has been deprecated since version 1.1.5 and should not be used in newly-written code.
Use gcut_process_get_flags() instead.
Gets flags
for spawning.
Since: 1.0.6
void gcut_egg_set_env (GCutEgg *egg,const gchar *name,...);
gcut_egg_set_env has been deprecated since version 1.1.5 and should not be used in newly-written code.
Use gcut_process_set_env() instead.
Sets environment variable for external command.
Since: 1.0.6
gchar **
gcut_egg_get_env (GCutEgg *egg);
gcut_egg_get_env has been deprecated since version 1.1.5 and should not be used in newly-written code.
Use gcut_process_get_env() instead.
Gets environment variable for external command.
a newly-allocated NULL-terminated environment
variables. ("NAME1=VALUE1", "NAME2=VALUE2",
..., NULL) It should be freed by g_strfreev() when no longer
needed.
Since: 1.0.6
gboolean gcut_egg_hatch (GCutEgg *egg,GError **error);
gcut_egg_hatch has been deprecated since version 1.1.5 and should not be used in newly-written code.
Use gcut_process_run() instead.
Hatches a new external process.
Since: 1.0.6
void
gcut_egg_close (GCutEgg *egg);
gcut_egg_close has been deprecated since version 1.1.5 and should not be used in newly-written code.
no need to close explicitly on GCutProcess.
Closes a hatched external process. It is closed implicitly on destroy.
Since: 1.0.6
gboolean gcut_egg_write (GCutEgg *egg,const gchar *chunk,gsize size,GError **error);
gcut_egg_write has been deprecated since version 1.1.5 and should not be used in newly-written code.
Use gcut_process_write() instead.
Writes chunk
to external process's standard input.
Since: 1.0.6
GPid
gcut_egg_get_pid (GCutEgg *egg);
gcut_egg_get_pid has been deprecated since version 1.1.5 and should not be used in newly-written code.
Use gcut_process_get_pid() instead.
Gets the process ID of running external process. If external process isn't running, 0 is returned.
Since: 1.0.6
gint gcut_egg_wait (GCutEgg *egg,guint timeout,GError **error);
gcut_egg_wait has been deprecated since version 1.1.5 and should not be used in newly-written code.
Use gcut_process_wait() instead.
Waits running external process is finished while timeout
milliseconds. If external process isn't finished while
timeout
milliseconds, GCUT_EGG_ERROR_TIMEOUT error is
set and -1 is returned. If external process isn't
running, GCUT_EGG_ERROR_NOT_RUNNING error is set and -1
is returned.
Since: 1.0.6
void gcut_egg_kill (GCutEgg *egg,gint signal_number);
gcut_egg_kill has been deprecated since version 1.1.5 and should not be used in newly-written code.
Use gcut_process_kill() instead.
Sends signal_number
signal to external process.
Since: 1.0.6
GIOChannel *
gcut_egg_get_input (GCutEgg *egg);
gcut_egg_get_input has been deprecated since version 1.1.5 and should not be used in newly-written code.
Use gcut_process_get_input_channel() instead.
Gets a GIOChannel connected with standard input of external process.
Since: 1.0.6
GIOChannel *
gcut_egg_get_output (GCutEgg *egg);
gcut_egg_get_output has been deprecated since version 1.1.5 and should not be used in newly-written code.
Use gcut_process_get_output_channel() instead.
Gets a GIOChannel connected with standard output of external process.
Since: 1.0.6
GIOChannel *
gcut_egg_get_error (GCutEgg *egg);
gcut_egg_get_error has been deprecated since version 1.1.5 and should not be used in newly-written code.
Use gcut_process_get_error_channel() instead.
Gets a GIOChannel connected with standard error output of external process.
Since: 1.0.6
guint
gcut_egg_get_forced_termination_wait_time
(GCutEgg *egg);
gcut_egg_get_forced_termination_wait_time has been deprecated since version 1.1.5 and should not be used in newly-written code.
Use gcut_process_get_forced_termination_wait_time() instead.
Gets a wait time in milliseconds for forced termination on dispose.
Since: 1.0.6
void gcut_egg_set_forced_termination_wait_time (GCutEgg *egg,guint timeout);
gcut_egg_set_forced_termination_wait_time has been deprecated since version 1.1.5 and should not be used in newly-written code.
Use gcut_process_set_forced_termination_wait_time() instead.
Sets a wait time in milliseconds for forced termination
on dispose. If timeout
is 0, it doesn't wait
termination of external process. The default value is 10.
Since: 1.0.6
#define GCUT_EGG_ERROR (gcut_egg_error_quark())
GCUT_EGG_ERROR is deprecated and should not be used in newly-written code.
GCutEggError has been deprecated since version 1.1.5 and should not be used in newly-written code.
Use GCutProcessError instead.
Error codes returned by GCutEgg related operations.
|
Command line related error. |
||
|
IO error. |
||
|
External command is already running. |
||
|
External command isn't running. |
||
|
Invalid GCutEgg object is passed. |
||
|
Timeout. |
Since: 1.0.6
“command” property“command” gpointer
The command to be ran by the egg.
Owner: GCutEgg
Flags: Read / Write
“error” signalvoid user_function (GCutEgg *egg, gpointer error, gpointer user_data)
It is emitted each time an external process causes an error. (e.g. IO error)
egg |
the object which received the signal. |
|
error |
the error of an external process. ( |
|
user_data |
user data set when the signal handler was connected. |
Flags: Run Last
Since: 1.0.6
“error-received” signalvoid user_function (GCutEgg *egg, gchar *chunk, guint64 size, gpointer user_data)
It is emitted each time an external process outputs something to its standard error output and it is read.
Note that you need to run GLib's main loop by
g_main_loop_run(), g_main_context_iteration() and so
on for detecting an external process's output is
readable.
egg |
the object which received the signal. |
|
chunk |
the chunk read from an external process's standard error output. |
|
size |
the size of |
|
user_data |
user data set when the signal handler was connected. |
Flags: Run Last
Since: 1.0.6
“output-received” signalvoid user_function (GCutEgg *egg, gchar *chunk, guint64 size, gpointer user_data)
It is emitted each time an external process outputs something to its standard output and it is read.
Note that you need to run GLib's main loop by
g_main_loop_run(), g_main_context_iteration() and so
on for detecting an external process's output is
readable.
egg |
the object which received the signal. |
|
chunk |
the chunk read from an external process's standard output. |
|
size |
the size of |
|
user_data |
user data set when the signal handler was connected. |
Flags: Run Last
Since: 1.0.6
“reaped” signalvoid user_function (GCutEgg *egg, gint status, gpointer user_data)
It is emitted when an external process is exited.
Note that you need to run GLib's main loop by
g_main_loop_run(), g_main_context_iteration() and so
on for detecting an external process is exited.
egg |
the object which received the signal. |
|
status |
the exit status of an external process. |
|
user_data |
user data set when the signal handler was connected. |
Flags: Run Last
Since: 1.0.6