שלום לכולם. אז אם חשבתם לעצמכם איך להריץ תוכנית מתוך התוכנית שלכם ותוך כדי שהיא תרוץ , תוכלו להציג את הפלט שלה, זאת דוגמא בשבילכם:
//Event listener for executed program's output.
public bool read_from_channel(IOChannel source, IOCondition cond) {
string str;
size_t c;
try {
source.read_to_end(out str, out c);
stdout.printf("%s", str);
}
catch (Error e) {
stderr.printf ("Could not load UI: %s\n", e.message);
return false;
}
return true;
}
//Executes some program.
public void execProgram(string command_line, string program_path, string arguments) {
string[] argv = new string[2];
argv[0] = program_path;
if(arguments != "")
argv[1] = arguments;
Pid child_pid;
int input_fd;
int output_fd;
int error_fd;
try {
Process.spawn_async_with_pipes(
command_line,
argv, //argv
null, // environment
SpawnFlags.SEARCH_PATH,
null, // child_setup
out child_pid,
out input_fd,
out output_fd,
out error_fd);
}
catch (Error e) {
stderr.printf ("Could not execute the program: %s\n", e.message);
return;
}
var iochan = new IOChannel.unix_new(output_fd);
iochan.add_watch(IOCondition.IN, read_from_channel);
}
public bool read_from_channel(IOChannel source, IOCondition cond) {
string str;
size_t c;
try {
source.read_to_end(out str, out c);
stdout.printf("%s", str);
}
catch (Error e) {
stderr.printf ("Could not load UI: %s\n", e.message);
return false;
}
return true;
}
//Executes some program.
public void execProgram(string command_line, string program_path, string arguments) {
string[] argv = new string[2];
argv[0] = program_path;
if(arguments != "")
argv[1] = arguments;
Pid child_pid;
int input_fd;
int output_fd;
int error_fd;
try {
Process.spawn_async_with_pipes(
command_line,
argv, //argv
null, // environment
SpawnFlags.SEARCH_PATH,
null, // child_setup
out child_pid,
out input_fd,
out output_fd,
out error_fd);
}
catch (Error e) {
stderr.printf ("Could not execute the program: %s\n", e.message);
return;
}
var iochan = new IOChannel.unix_new(output_fd);
iochan.add_watch(IOCondition.IN, read_from_channel);
}
הפונקצייה - read_from_channel מאזינה לפלט חדש מהתוכנית הרצה ומציגה אותו.
הפונקצייה - execProgram מריצה את התוכנית שברצונכם להריץ...
הפונקצייה - execProgram מריצה את התוכנית שברצונכם להריץ...
אין תגובות:
הוסף רשומת תגובה