﻿<?xml version="1.0" encoding="utf-8"?><Type Name="Process" FullName="GLib.Process"><TypeSignature Language="C#" Value="public class Process" /><TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit Process extends System.Object" /><AssemblyInfo><AssemblyName>glib-sharp</AssemblyName></AssemblyInfo><Base><BaseTypeName>System.Object</BaseTypeName></Base><Interfaces /><Docs><summary>Process class.</summary><remarks>Methods for spawning child processes.</remarks></Docs><Members><Member MemberName="Close"><MemberSignature Language="C#" Value="public void Close ();" /><MemberSignature Language="ILAsm" Value=".method public hidebysig instance void Close() cil managed" /><MemberType>Method</MemberType><ReturnValue><ReturnType>System.Void</ReturnType></ReturnValue><Parameters /><Docs><summary>Closes a process.</summary><remarks>Processes spawned with <see cref="M:GLib.SpawnFlags.DoNotReapChild" /> must use this method to ensure zombie processes are not stranded.</remarks></Docs></Member><Member MemberName="IgnorePipe"><MemberSignature Language="C#" Value="public const int IgnorePipe = 2147483647;" /><MemberSignature Language="ILAsm" Value=".field public static literal int32 IgnorePipe = (2147483647)" /><MemberType>Field</MemberType><ReturnValue><ReturnType>System.Int32</ReturnType></ReturnValue><MemberValue>2147483647</MemberValue><Docs><summary>IgnorePipe field.</summary><remarks>Pass this value to <see cref="M:GLib.Process.SpawnAsyncWithPipes" /> to ignore a pipe parameter.</remarks></Docs></Member><Member MemberName="RequestPipe"><MemberSignature Language="C#" Value="public const int RequestPipe = 0;" /><MemberSignature Language="ILAsm" Value=".field public static literal int32 RequestPipe = (0)" /><MemberType>Field</MemberType><ReturnValue><ReturnType>System.Int32</ReturnType></ReturnValue><MemberValue>0</MemberValue><Docs><summary>RequestPipe field.</summary><remarks>Pass this value to <see cref="M:GLib.Process.SpawnAsyncWithPipes" /> to request a request a pipe descriptor be returned in the parameter.</remarks></Docs></Member><Member MemberName="SpawnAsync"><MemberSignature Language="C#" Value="public static bool SpawnAsync (string working_directory, string[] argv, string[] envp, GLib.SpawnFlags flags, GLib.SpawnChildSetupFunc child_setup, out GLib.Process child_process);" /><MemberSignature Language="ILAsm" Value=".method public static hidebysig bool SpawnAsync(string working_directory, string[] argv, string[] envp, valuetype GLib.SpawnFlags flags, class GLib.SpawnChildSetupFunc child_setup, class GLib.Process child_process) cil managed" /><MemberType>Method</MemberType><ReturnValue><ReturnType>System.Boolean</ReturnType></ReturnValue><Parameters><Parameter Name="working_directory" Type="System.String" /><Parameter Name="argv" Type="System.String[]" /><Parameter Name="envp" Type="System.String[]" /><Parameter Name="flags" Type="GLib.SpawnFlags" /><Parameter Name="child_setup" Type="GLib.SpawnChildSetupFunc" /><Parameter Name="child_process" Type="GLib.Process&amp;" RefType="out" /></Parameters><Docs><param name="working_directory">The directory in which to execute the process, or <see langword="null" /> to use the current directory of the parent process.</param><param name="argv">A string array containing the program name in the first element.</param><param name="envp">An array of environment values in the form 'var=value', or <see langword="null" />.</param><param name="flags">Process spawning configuration flags.</param><param name="child_setup">A child process setup callback, or <see langword="null" />.</param><param name="child_process">Returns the child process.</param><summary>Spawns a child process asynchronously.</summary><returns>A boolean value indicating spawning success.</returns><remarks><para>The method does not wait for the child process to complete before returning. This is a convenience method for the more detailed <see cref="M:GLib.Process.SpawnAsyncWithPipes" /> method. This method throws <see cref="T:GLib.GException" /> if an error occurs creating the process.</para><para><example><code lang="C#">
...
try {
	GLib.Process proc;
	GLib.Process.SpawnAsync (null, new string[] {"echo", "[Async echo is running]"}, null, GLib.SpawnFlags.SearchPath, null, out proc);
} catch (GException e) {
	Console.WriteLine ("Exception in Spawn operation: " + e);
}
...
            </code></example></para></remarks></Docs></Member><Member MemberName="SpawnAsyncWithPipes"><MemberSignature Language="C#" Value="public static bool SpawnAsyncWithPipes (string working_directory, string[] argv, string[] envp, GLib.SpawnFlags flags, GLib.SpawnChildSetupFunc child_setup, out GLib.Process child_process, ref int stdin, ref int stdout, ref int stderr);" /><MemberSignature Language="ILAsm" Value=".method public static hidebysig bool SpawnAsyncWithPipes(string working_directory, string[] argv, string[] envp, valuetype GLib.SpawnFlags flags, class GLib.SpawnChildSetupFunc child_setup, class GLib.Process child_process, int32 stdin, int32 stdout, int32 stderr) cil managed" /><MemberType>Method</MemberType><ReturnValue><ReturnType>System.Boolean</ReturnType></ReturnValue><Parameters><Parameter Name="working_directory" Type="System.String" /><Parameter Name="argv" Type="System.String[]" /><Parameter Name="envp" Type="System.String[]" /><Parameter Name="flags" Type="GLib.SpawnFlags" /><Parameter Name="child_setup" Type="GLib.SpawnChildSetupFunc" /><Parameter Name="child_process" Type="GLib.Process&amp;" RefType="out" /><Parameter Name="stdin" Type="System.Int32&amp;" RefType="ref" /><Parameter Name="stdout" Type="System.Int32&amp;" RefType="ref" /><Parameter Name="stderr" Type="System.Int32&amp;" RefType="ref" /></Parameters><Docs><param name="working_directory">The directory in which to execute the process, or <see langword="null" /> to use the current directory of the parent process.</param><param name="argv">A string array containing the program name in the first element.</param><param name="envp">An array of environment values in the form 'var=value', or <see langword="null" />.</param><param name="flags">Process spawning configuration flags.</param><param name="child_setup">A child process setup callback, or <see langword="null" />.</param><param name="child_process">Returns the spawned process.</param><param name="stdin">Returns the stdin pipe descriptor if caller passes anything but <see cref="GLib.Process.IgnorePipe" />.</param><param name="stdout">Returns the stdout pipe descriptor if caller passes anything but <see cref="GLib.Process.IgnorePipe" />.</param><param name="stderr">Returns the stderr pipe descriptor if caller passes anything but <see cref="GLib.Process.IgnorePipe" />.</param><summary>Spawns a child process and returns requested pipe descriptors.</summary><returns>A boolean value indicating operation success.</returns><remarks><para>This method throws <see cref="T:GLib.GException" /> if an error occurs creating the process.</para><para><example><code lang="C#">
using GLib;
using System;

public class SpawnTest  {

	public static void Main (string[] args)
	{
		new SpawnTest ();
	}

	MainLoop main_loop;
	IOChannel channel;

	public SpawnTest ()
	{
		main_loop = new MainLoop ();

		try {
			Process proc;
			int stdin = Process.IgnorePipe;
			int stdout = Process.RequestPipe;
			int stderr = Process.IgnorePipe;
			GLib.Process.SpawnAsyncWithPipes (null, new string[] {"pwd"}, null, SpawnFlags.SearchPath, null, out proc, ref stdin, ref stdout, ref stderr);
			channel = new IOChannel (stdout);
			channel.AddWatch (0, IOCondition.In | IOCondition.Hup, new IOFunc (ReadStdout));
		} catch (Exception e) {
			Console.WriteLine ("Exception in Spawn: " + e);
		}

		main_loop.Run ();
	}

	bool ReadStdout (IOChannel source, IOCondition condition)
	{
		if ((condition &amp; IOCondition.In) == IOCondition.In) {
			string txt;
			if (source.ReadToEnd (out txt) == IOStatus.Normal)
				Console.WriteLine ("[SpawnTest output] " + txt);
		}
		if ((condition &amp; IOCondition.Hup) == IOCondition.Hup) {
			source.Dispose ();
			main_loop.Quit ();
			return true;
		}
		return true;
	}
}
              </code></example></para></remarks></Docs></Member><Member MemberName="SpawnCommandLineAsync"><MemberSignature Language="C#" Value="public static bool SpawnCommandLineAsync (string command_line);" /><MemberSignature Language="ILAsm" Value=".method public static hidebysig bool SpawnCommandLineAsync(string command_line) cil managed" /><MemberType>Method</MemberType><ReturnValue><ReturnType>System.Boolean</ReturnType></ReturnValue><Parameters><Parameter Name="command_line" Type="System.String" /></Parameters><Docs><param name="command_line">The command line with arguments.</param><summary>Spawns a child process asynchronously.</summary><returns>A boolean value indicating spawning success.</returns><remarks /><remarks><para>This method does not wait for the child process to complete before returning. It is a convenience method for the more detailed <see cref="M:GLib.Process.SpawnAsync" /> method.</para><para><example><code lang="C#">
...
try {
	GLib.Process.SpawnCommandLineAsync ("echo \"[Async echo process running]\"");
} catch (GException e) {
	Console.WriteLine ("Exception in Spawn operation: " + e);
}
...
            </code></example></para></remarks></Docs></Member><Member MemberName="SpawnCommandLineSync"><MemberSignature Language="C#" Value="public static bool SpawnCommandLineSync (string command_line, out string stdout, out string stderr, out int exit_status);" /><MemberSignature Language="ILAsm" Value=".method public static hidebysig bool SpawnCommandLineSync(string command_line, string stdout, string stderr, int32 exit_status) cil managed" /><MemberType>Method</MemberType><ReturnValue><ReturnType>System.Boolean</ReturnType></ReturnValue><Parameters><Parameter Name="command_line" Type="System.String" /><Parameter Name="stdout" Type="System.String&amp;" RefType="out" /><Parameter Name="stderr" Type="System.String&amp;" RefType="out" /><Parameter Name="exit_status" Type="System.Int32&amp;" RefType="out" /></Parameters><Docs><param name="command_line">The command line with arguments.</param><param name="stdout">Returns the stdout output of the child process as a string.</param><param name="stderr">Returns the stderr output of the child process as a string.</param><param name="exit_status">Returns the exit code returned by the process.</param><summary>Spawns a child process synchronously.</summary><returns>A boolean value indicating spawning success.</returns><remarks><para>The method waits for the child process to complete prior to returning. This is a convenience method for the more detailed <see cref="M:GLib.Process.SpawnSync" /> method.</para><para><example><code lang="C#">
...
try {
	string stdout, stderr;
	int exit_status;
	GLib.Process.SpawnCommandLineSync ("pwd", out stdout, out stderr, out exit_status);
	Console.Write ("pwd exit_status=" + exit_status + " output: " + stdout);
} catch (GException e) {
	Console.WriteLine ("Exception in Spawn operation: " + e);
}
...
            </code></example></para></remarks></Docs></Member><Member MemberName="SpawnSync"><MemberSignature Language="C#" Value="public static bool SpawnSync (string working_directory, string[] argv, string[] envp, GLib.SpawnFlags flags, GLib.SpawnChildSetupFunc child_setup, out string stdout, out string stderr, out int exit_status);" /><MemberSignature Language="ILAsm" Value=".method public static hidebysig bool SpawnSync(string working_directory, string[] argv, string[] envp, valuetype GLib.SpawnFlags flags, class GLib.SpawnChildSetupFunc child_setup, string stdout, string stderr, int32 exit_status) cil managed" /><MemberType>Method</MemberType><ReturnValue><ReturnType>System.Boolean</ReturnType></ReturnValue><Parameters><Parameter Name="working_directory" Type="System.String" /><Parameter Name="argv" Type="System.String[]" /><Parameter Name="envp" Type="System.String[]" /><Parameter Name="flags" Type="GLib.SpawnFlags" /><Parameter Name="child_setup" Type="GLib.SpawnChildSetupFunc" /><Parameter Name="stdout" Type="System.String&amp;" RefType="out" /><Parameter Name="stderr" Type="System.String&amp;" RefType="out" /><Parameter Name="exit_status" Type="System.Int32&amp;" RefType="out" /></Parameters><Docs><param name="working_directory">The directory in which to execute the process, or <see langword="null" /> to use the current directory of the parent process.</param><param name="argv">A string array containing the program name in the first element.</param><param name="envp">An array of environment values in the form 'var=value', or <see langword="null" />.</param><param name="flags">Process spawning configuration flags.</param><param name="child_setup">A child process setup callback, or <see langword="null" />.</param><param name="stdout">Returns the stdout output of the child process as a string.</param><param name="stderr">Returns the stderr output of the child process as a string.</param><param name="exit_status">Returns the exit code of the child process.</param><summary>Spawns a child process synchronously.</summary><returns>A boolean value indicating spawning success.</returns><remarks><para>The method waits for the child process to complete prior to returning.</para><para><example><code lang="C#">
...
try {
	string stdout, stderr;
	int exit_status;
	GLib.Process.SpawnSync ("/usr", new string[] {"pwd"}, null, GLib.SpawnFlags.SearchPath, null, out stdout, out stderr, out exit_status);
	Console.Write ("pwd exit_status=" + exit_status + " output: " + stdout);
} catch (GException e) {
	Console.WriteLine ("Exception in Spawn operation: " + e);
}
...
            </code></example></para></remarks></Docs></Member></Members></Type>