FreeBSD Manual Pages
AG_EXECUTE(3) Library Functions Manual AG_EXECUTE(3) NAME AG_Execute -- agar file execution interface SYNOPSIS #include <agar/core.h> DESCRIPTION The AG_Execute() function provides a cross-platform interface for run- ning executable programs and monitoring their execution. INTERFACE AG_ProcessID AG_Execute(const char *file, char **argv) AG_ProcessID AG_WaitOnProcess(AG_ProcessID pid, enum ag_exec_wait_type wait_type) int AG_Kill(AG_ProcessID pid) AG_Execute() runs the specified program with the given arguments, re- turning an integer process ID. If an error has occurred, the function returns -1 with an error message. AG_WaitOnProcess() checks for status or waits until the specified process terminates. The wait_type argument may be one of: AG_EXEC_WAIT_IMMEDIATE If the process has not exited, return immedi- ately without blocking. AG_EXEC_WAIT_INFINITE Block the calling thread until the process has exited. The function returns the PID of the terminated process, -1 if an error has occurred, or 0 if wait_type is AG_EXEC_WAIT_IMMEDIATE and the process is still running. The AG_Kill() function immediately terminates the specified process. EXAMPLES The following code runs a program on a Unix-like system: char *argv[3]; AG_ProcessID pid; argv[0] = "ls"; argv[1] = "-l" argv[2] = (char *)NULL; pid = AG_Execute("/bin/ls", argv); if (pid == -1) AG_Verbose("Execute failed (%s)\n", AG_GetError()); The following code launches a background task on Windows and terminates its execution after 10 seconds: char *argv[2]; AG_ProcessID pid; int counter = 0; argv[0] = "MyTask"; argv[1] = (char *)NULL; pid = AG_Execute("C:\Program Files\" "Example\MyTask.exe"); for (;;) { if (AG_WaitOnProcess(pid, AG_EXEC_WAIT_IMMEDIATE) == -1) { AG_Verbose("Task exited unexpectedly (%s)\n", AG_GetError()); break; } if (counter++ == 10) { if (AG_Kill(pid) == -1) { AG_Verbose("Kill failed (%s)\n", AG_GetError()); } break; } sleep(1); } SEE ALSO AG_Intro(3) HISTORY The AG_Execute interface first appeared in Agar 1.4.1. Agar 1.7 December 21, 2022 AG_EXECUTE(3)
NAME | SYNOPSIS | DESCRIPTION | INTERFACE | EXAMPLES | SEE ALSO | HISTORY
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=AG_Execute&sektion=3&manpath=FreeBSD+Ports+14.3.quarterly>
