Merge pull request #484 from roji/transactions_pspe
[mono.git] / mcs / class / Mono.Posix / Documentation / en / Mono.Unix / UnixEnvironment.xml
1 <Type Name="UnixEnvironment" FullName="Mono.Unix.UnixEnvironment">
2   <TypeSignature Language="C#" Value="public sealed class UnixEnvironment" />
3   <TypeSignature Language="ILAsm" Value=".class public auto ansi sealed beforefieldinit UnixEnvironment extends System.Object" />
4   <AssemblyInfo>
5     <AssemblyName>Mono.Posix</AssemblyName>
6     <AssemblyVersion>1.0.5000.0</AssemblyVersion>
7     <AssemblyVersion>2.0.0.0</AssemblyVersion>
8     <AssemblyVersion>4.0.0.0</AssemblyVersion>
9   </AssemblyInfo>
10   <ThreadingSafetyStatement>This type is safe for multithreaded operations.</ThreadingSafetyStatement>
11   <Base>
12     <BaseTypeName>System.Object</BaseTypeName>
13   </Base>
14   <Interfaces />
15   <Docs>
16     <summary>Provides the current settings for, and information about, the
17       execution environment.</summary>
18     <remarks>
19       <para>
20         Use this class to retrieve the following information:
21       </para>
22       <list type="bullet">
23         <item>
24           <term>
25           User and Group information
26         </term>
27         </item>
28         <item>
29           <term>
30           Session creation
31         </term>
32         </item>
33         <item>
34           <term>
35           Process group creation
36         </term>
37         </item>
38         <item>
39           <term>
40           Configuration value lookup
41         </term>
42         </item>
43         <item>
44           <term>
45           Supplementary group information
46         </term>
47         </item>
48       </list>
49     </remarks>
50   </Docs>
51   <Members>
52     <Member MemberName="CreateSession">
53       <MemberSignature Language="C#" Value="public static int CreateSession ();" />
54       <MemberSignature Language="ILAsm" Value=".method public static hidebysig int32 CreateSession() cil managed" />
55       <MemberType>Method</MemberType>
56       <AssemblyInfo>
57         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
58         <AssemblyVersion>2.0.0.0</AssemblyVersion>
59         <AssemblyVersion>4.0.0.0</AssemblyVersion>
60       </AssemblyInfo>
61       <ReturnValue>
62         <ReturnType>System.Int32</ReturnType>
63       </ReturnValue>
64       <Parameters />
65       <Docs>
66         <summary>Create a new session.</summary>
67         <returns>
68           A <see cref="T:System.Int32" /> containing the return value of the 
69           <see cref="M:Mono.Unix.Native.Syscall.setsid" /> call.  This can be
70           ignored, since it will be translated into an exception if it's an
71           error anyway.
72         </returns>
73         <remarks>
74           <para>
75             This method creates a new session.  The calling process is the 
76             session leader of the new session, is the process group leader of 
77             a new process group and has no controlling terminal.  The calling 
78             process is the only process in either the session or the process 
79             group.
80           </para>
81         </remarks>
82         <exception cref="System.InvalidOperationException">
83           <para>
84             The calling process is already a process group leader, or the 
85             process group ID of a process other than the calling process 
86             matches the process ID of the calling process.
87             [<see cref="F:Mono.Unix.Native.Errno.EPERM" />]
88           </para>
89         </exception>
90         <altmember cref="M:Mono.Unix.Native.Syscall.setsid" />
91       </Docs>
92     </Member>
93     <Member MemberName="CurrentDirectory">
94       <MemberSignature Language="C#" Value="public static string CurrentDirectory { get; set; }" />
95       <MemberSignature Language="ILAsm" Value=".property string CurrentDirectory" />
96       <MemberType>Property</MemberType>
97       <AssemblyInfo>
98         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
99         <AssemblyVersion>2.0.0.0</AssemblyVersion>
100         <AssemblyVersion>4.0.0.0</AssemblyVersion>
101       </AssemblyInfo>
102       <ReturnValue>
103         <ReturnType>System.String</ReturnType>
104       </ReturnValue>
105       <Docs>
106         <summary>Gets or sets the current directory of the process.</summary>
107         <value>
108           A <see cref="T:System.String" /> containing the current directory of
109           the process.
110         </value>
111         <remarks>
112           <para>The <paramref name="value" /> argument is permitted to specify
113           relative or absolute path information. Relative path information is 
114           interpreted as relative to the current working directory. 
115           <block subset="none" type="note">To obtain the current working 
116           directory, see 
117           <see cref="M:Mono.Unix.UnixDirectoryInfo.GetCurrentDirectory" qualify="true" />.
118           </block></para>
119         </remarks>
120         <exception cref="T:System.UnauthorizedAccessException">
121           Permission to read or search a component of the current working
122           directory was denied.
123           [<see cref="F:Mono.Unix.Native.Errno.EACCESS" />]
124         </exception>
125         <exception cref="T:System.IO.FileNotFoundException">
126           The current working directory has been unlinked.
127           [<see cref="F:Mono.Unix.Native.Errno.ENOENT" />]
128         </exception>
129         <altmember cref="M:Mono.Unix.UnixDirectoryInfo.GetCurrentDirectory" />
130         <altmember cref="M:Mono.Unix.UnixDirectoryInfo.SetCurrentDirectory" />
131       </Docs>
132     </Member>
133     <Member MemberName="EffectiveGroup">
134       <MemberSignature Language="C#" Value="public static Mono.Unix.UnixGroupInfo EffectiveGroup { get; set; }" />
135       <MemberSignature Language="ILAsm" Value=".property class Mono.Unix.UnixGroupInfo EffectiveGroup" />
136       <MemberType>Property</MemberType>
137       <AssemblyInfo>
138         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
139         <AssemblyVersion>2.0.0.0</AssemblyVersion>
140         <AssemblyVersion>4.0.0.0</AssemblyVersion>
141       </AssemblyInfo>
142       <ReturnValue>
143         <ReturnType>Mono.Unix.UnixGroupInfo</ReturnType>
144       </ReturnValue>
145       <Docs>
146         <summary>Gets information about the effective group of the process.</summary>
147         <value>
148           A <see cref="T:Mono.Unix.UnixGroupInfo" /> containing information
149           about the effective group of the process.
150         </value>
151         <remarks>
152           <para>
153             The 
154             <see cref="P:Mono.Unix.UnixEnvironment.EffectiveGroup" />
155             gives the process additional permissions during the execution of 
156             <see cref="F:Mono.Unix.FileSpecialAttributes.SetGroupId" />
157             mode processes.
158           </para>
159         </remarks>
160         <altmember cref="M:Mono.Unix.UnixEnvironment.EffectiveUser" />
161         <altmember cref="M:Mono.Unix.UnixEnvironment.RealGroup" />
162         <altmember cref="M:Mono.Unix.UnixEnvironment.RealUser" />
163         <altmember cref="M:Mono.Unix.Native.Syscall.getegid" />
164       </Docs>
165     </Member>
166     <Member MemberName="EffectiveGroupId">
167       <MemberSignature Language="C#" Value="public static long EffectiveGroupId { get; set; }" />
168       <MemberSignature Language="ILAsm" Value=".property int64 EffectiveGroupId" />
169       <MemberType>Property</MemberType>
170       <AssemblyInfo>
171         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
172         <AssemblyVersion>2.0.0.0</AssemblyVersion>
173         <AssemblyVersion>4.0.0.0</AssemblyVersion>
174       </AssemblyInfo>
175       <ReturnValue>
176         <ReturnType>System.Int64</ReturnType>
177       </ReturnValue>
178       <Docs>
179         <summary>Gets the effective group ID of the process.</summary>
180         <value>
181           A <see cref="T:System.Int64" /> containing nthe effective group ID
182           of the process.
183         </value>
184         <remarks>
185           <para>
186             The 
187             <see cref="P:Mono.Unix.UnixEnvironment.EffectiveGroupId" />
188             gives the process additional permissions during the execution of 
189             <see cref="F:Mono.Unix.FileSpecialAttributes.SetGroupId" />
190             mode processes.
191           </para>
192         </remarks>
193         <altmember cref="M:Mono.Unix.UnixEnvironment.EffectiveUserId" />
194         <altmember cref="M:Mono.Unix.UnixEnvironment.RealGroupId" />
195         <altmember cref="M:Mono.Unix.UnixEnvironment.RealUserId" />
196         <altmember cref="M:Mono.Unix.Native.Syscall.getegid" />
197       </Docs>
198     </Member>
199     <Member MemberName="EffectiveUser">
200       <MemberSignature Language="C#" Value="public static Mono.Unix.UnixUserInfo EffectiveUser { get; set; }" />
201       <MemberSignature Language="ILAsm" Value=".property class Mono.Unix.UnixUserInfo EffectiveUser" />
202       <MemberType>Property</MemberType>
203       <AssemblyInfo>
204         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
205         <AssemblyVersion>2.0.0.0</AssemblyVersion>
206         <AssemblyVersion>4.0.0.0</AssemblyVersion>
207       </AssemblyInfo>
208       <ReturnValue>
209         <ReturnType>Mono.Unix.UnixUserInfo</ReturnType>
210       </ReturnValue>
211       <Docs>
212         <summary>Gets information about the effective user of the process.</summary>
213         <value>
214           A <see cref="T:Mono.Unix.UnixUserInfo" /> containing information
215           about the effective user of the process.
216         </value>
217         <remarks>
218           <para>
219             The 
220             <see cref="P:Mono.Unix.UnixEnvironment.EffectiveUser" /> gives
221             the process additional permissions during execution of 
222             <see cref="F:Mono.Unix.FileSpecialAttributes.SetUserId" />
223             mode processes.
224           </para>
225         </remarks>
226         <altmember cref="M:Mono.Unix.UnixEnvironment.EffectiveGroup" />
227         <altmember cref="M:Mono.Unix.UnixEnvironment.RealGroup" />
228         <altmember cref="M:Mono.Unix.UnixEnvironment.RealUser" />
229         <altmember cref="M:Mono.Unix.Native.Syscall.geteuid" />
230       </Docs>
231     </Member>
232     <Member MemberName="EffectiveUserId">
233       <MemberSignature Language="C#" Value="public static long EffectiveUserId { get; set; }" />
234       <MemberSignature Language="ILAsm" Value=".property int64 EffectiveUserId" />
235       <MemberType>Property</MemberType>
236       <AssemblyInfo>
237         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
238         <AssemblyVersion>2.0.0.0</AssemblyVersion>
239         <AssemblyVersion>4.0.0.0</AssemblyVersion>
240       </AssemblyInfo>
241       <ReturnValue>
242         <ReturnType>System.Int64</ReturnType>
243       </ReturnValue>
244       <Docs>
245         <summary>Gets the effective user ID of the process.</summary>
246         <value>
247           A <see cref="T:System.Int64" /> containing the effective user ID of
248           the process.
249         </value>
250         <remarks>
251           <para>
252             The 
253             <see cref="P:Mono.Unix.UnixEnvironment.EffectiveUserId" /> gives
254             the process additional permissions during execution of 
255             <see cref="F:Mono.Unix.FileSpecialAttributes.SetUserId" />
256             mode processes.
257           </para>
258         </remarks>
259         <altmember cref="M:Mono.Unix.UnixEnvironment.EffectiveGroupId" />
260         <altmember cref="M:Mono.Unix.UnixEnvironment.RealGroupId" />
261         <altmember cref="M:Mono.Unix.UnixEnvironment.RealUserId" />
262         <altmember cref="M:Mono.Unix.Native.Syscall.geteuid" />
263       </Docs>
264     </Member>
265     <Member MemberName="GetConfigurationString">
266       <MemberSignature Language="C#" Value="public static string GetConfigurationString (Mono.Unix.Native.ConfstrName name);" />
267       <MemberSignature Language="ILAsm" Value=".method public static hidebysig string GetConfigurationString(valuetype Mono.Unix.Native.ConfstrName name) cil managed" />
268       <MemberType>Method</MemberType>
269       <AssemblyInfo>
270         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
271         <AssemblyVersion>2.0.0.0</AssemblyVersion>
272         <AssemblyVersion>4.0.0.0</AssemblyVersion>
273       </AssemblyInfo>
274       <Attributes>
275         <Attribute>
276           <AttributeName>System.CLSCompliant(false)</AttributeName>
277         </Attribute>
278       </Attributes>
279       <ReturnValue>
280         <ReturnType>System.String</ReturnType>
281       </ReturnValue>
282       <Parameters>
283         <Parameter Name="name" Type="Mono.Unix.Native.ConfstrName" />
284       </Parameters>
285       <Docs>
286         <param name="name">
287           A <see cref="T:Mono.Unix.Native.ConfstrName" /> value containing the
288           configuration value to retrieve.
289         </param>
290         <summary>
291           Retrieve the value of the configuration value 
292           <paramref name="name" />.
293         </summary>
294         <returns>
295           A <see cref="T:System.String" /> containing the value of the
296           configuration variable <paramref name="name" />.
297         </returns>
298         <remarks>
299         </remarks>
300         <exception cref="System.ArgumentException">
301           <para>
302             The value of the
303             <paramref name="name" />
304             argument is invalid.
305             [<see cref="F:Mono.Unix.Native.Errno.EINVAL" />]
306           </para>
307         </exception>
308         <altmember cref="M:Mono.Unix.Native.Syscall.confstr" />
309       </Docs>
310     </Member>
311     <Member MemberName="GetConfigurationValue">
312       <MemberSignature Language="C#" Value="public static long GetConfigurationValue (Mono.Unix.Native.SysconfName name);" />
313       <MemberSignature Language="ILAsm" Value=".method public static hidebysig int64 GetConfigurationValue(valuetype Mono.Unix.Native.SysconfName name) cil managed" />
314       <MemberType>Method</MemberType>
315       <AssemblyInfo>
316         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
317         <AssemblyVersion>2.0.0.0</AssemblyVersion>
318         <AssemblyVersion>4.0.0.0</AssemblyVersion>
319       </AssemblyInfo>
320       <Attributes>
321         <Attribute>
322           <AttributeName>System.CLSCompliant(false)</AttributeName>
323         </Attribute>
324       </Attributes>
325       <ReturnValue>
326         <ReturnType>System.Int64</ReturnType>
327       </ReturnValue>
328       <Parameters>
329         <Parameter Name="name" Type="Mono.Unix.Native.SysconfName" />
330       </Parameters>
331       <Docs>
332         <param name="name">
333           A <see cref="T:Mono.Unix.Native.SysconfName" /> value containing the
334           configurable system limit or option variable to lookup.
335         </param>
336         <summary>
337           Retrieve the value of the configurable system limit or 
338           option value <paramref name="name" />.
339         </summary>
340         <returns>
341           A <see cref="T:System.Int64" /> containing the value of the 
342           configurable system limit or option value <paramref name="name" />.
343         </returns>
344         <remarks>
345           <para>
346             This method provides a way for applications to determine the 
347             current value of a configurable system limit or option variable.  
348             The <paramref name="name" /> argument specifies the system 
349             variable to be queried.  
350           </para>
351         </remarks>
352         <exception cref="System.ArgumentException">
353           <para>
354             The value of the
355             <paramref name="name" />
356             argument is invalid.
357             [<see cref="F:Mono.Unix.Native.Errno.EINVAL" />]
358           </para>
359         </exception>
360         <altmember cref="M:Mono.Unix.Native.Syscall.sysconf" />
361       </Docs>
362     </Member>
363     <Member MemberName="GetParentProcess">
364       <MemberSignature Language="C#" Value="public static Mono.Unix.UnixProcess GetParentProcess ();" />
365       <MemberSignature Language="ILAsm" Value=".method public static hidebysig class Mono.Unix.UnixProcess GetParentProcess() cil managed" />
366       <MemberType>Method</MemberType>
367       <AssemblyInfo>
368         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
369         <AssemblyVersion>2.0.0.0</AssemblyVersion>
370         <AssemblyVersion>4.0.0.0</AssemblyVersion>
371       </AssemblyInfo>
372       <ReturnValue>
373         <ReturnType>Mono.Unix.UnixProcess</ReturnType>
374       </ReturnValue>
375       <Parameters />
376       <Docs>
377         <summary>Gets information about the parent process.</summary>
378         <returns>
379           A <see cref="T:Mono.Unix.UnixProcess" /> instance containing
380           information about the parent process.
381         </returns>
382         <remarks>
383         </remarks>
384       </Docs>
385     </Member>
386     <Member MemberName="GetParentProcessId">
387       <MemberSignature Language="C#" Value="public static int GetParentProcessId ();" />
388       <MemberSignature Language="ILAsm" Value=".method public static hidebysig int32 GetParentProcessId() cil managed" />
389       <MemberType>Method</MemberType>
390       <AssemblyInfo>
391         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
392         <AssemblyVersion>2.0.0.0</AssemblyVersion>
393         <AssemblyVersion>4.0.0.0</AssemblyVersion>
394       </AssemblyInfo>
395       <ReturnValue>
396         <ReturnType>System.Int32</ReturnType>
397       </ReturnValue>
398       <Parameters />
399       <Docs>
400         <summary>Gets the process ID of the parent process.</summary>
401         <returns>
402           A <see cref="T:System.Int32" /> containing the process ID of the
403           parent process.
404         </returns>
405         <remarks>
406         </remarks>
407         <altmember cref="M:Mono.Unix.Native.Syscall.getppid" />
408       </Docs>
409     </Member>
410     <Member MemberName="GetProcessGroup">
411       <MemberSignature Language="C#" Value="public static int GetProcessGroup ();" />
412       <MemberSignature Language="ILAsm" Value=".method public static hidebysig int32 GetProcessGroup() cil managed" />
413       <MemberType>Method</MemberType>
414       <AssemblyInfo>
415         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
416         <AssemblyVersion>2.0.0.0</AssemblyVersion>
417         <AssemblyVersion>4.0.0.0</AssemblyVersion>
418       </AssemblyInfo>
419       <ReturnValue>
420         <ReturnType>System.Int32</ReturnType>
421       </ReturnValue>
422       <Parameters />
423       <Docs>
424         <summary>Gets the process group ID of the current process.</summary>
425         <returns>
426           A <see cref="T:System.Int32" /> containing the process group ID of
427           the current process.
428         </returns>
429         <remarks>
430           <para>
431             Process groups are used for distribution of signals, and by 
432             terminals to arbitrate requests for their input: processes that 
433             have the same process group as the terminal are foreground and 
434             may read, while others will block with a signal if they attempt 
435             to read.
436           </para>
437           <para>
438             This system call is thus used by programs such as <c>csh</c>(1) 
439             to create process groups in implementing job control.  The 
440             <see cref="M:Mono.Unix.Native.Syscall.tcgetpgrp" />() and 
441             <see cref="M:Mono.Unix.Native.Syscall.tcsetpgrp" />()
442             calls are used to get/set the process group of the control terminal.
443           </para>
444         </remarks>
445         <altmember cref="M:Mono.Unix.Native.Syscall.getpgrp" />
446       </Docs>
447     </Member>
448     <Member MemberName="GetSupplementaryGroupIds">
449       <MemberSignature Language="C#" Value="public static long[] GetSupplementaryGroupIds ();" />
450       <MemberSignature Language="ILAsm" Value=".method public static hidebysig int64[] GetSupplementaryGroupIds() cil managed" />
451       <MemberType>Method</MemberType>
452       <AssemblyInfo>
453         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
454         <AssemblyVersion>2.0.0.0</AssemblyVersion>
455         <AssemblyVersion>4.0.0.0</AssemblyVersion>
456       </AssemblyInfo>
457       <ReturnValue>
458         <ReturnType>System.Int64[]</ReturnType>
459       </ReturnValue>
460       <Parameters />
461       <Docs>
462         <summary>Gets the current group access list.</summary>
463         <returns>
464           A <see cref="T:System.Int64" /> array containing the group access
465           list of the current process.
466         </returns>
467         <remarks>
468           <para>
469             The group access list is a list of groups which the current
470             process belongs to.  These groups are used for file access checks
471             when the 
472             <see cref="P:Mono.Unix.UnixEnvironment.RealUser" /> is not the
473             file's
474             <see cref="P:Mono.Unix.UnixFileSystemInfo.OwnerUser" />; each of
475             the supplementary groups is checked against
476             <see cref="P:Mono.Unix.UnixFileSystemInfo.OwnerGroup" /> to see if
477             group access applies, before using the  "other"
478             <see cref="P:Mono.Unix.UnixFileSystemInfo.FileAccessPermissions" />.
479           </para>
480         </remarks>
481         <altmember cref="M:Mono.Unix.Native.Syscall.getgroups" />
482       </Docs>
483     </Member>
484     <Member MemberName="GetSupplementaryGroups">
485       <MemberSignature Language="C#" Value="public static Mono.Unix.UnixGroupInfo[] GetSupplementaryGroups ();" />
486       <MemberSignature Language="ILAsm" Value=".method public static hidebysig class Mono.Unix.UnixGroupInfo[] GetSupplementaryGroups() cil managed" />
487       <MemberType>Method</MemberType>
488       <AssemblyInfo>
489         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
490         <AssemblyVersion>2.0.0.0</AssemblyVersion>
491         <AssemblyVersion>4.0.0.0</AssemblyVersion>
492       </AssemblyInfo>
493       <ReturnValue>
494         <ReturnType>Mono.Unix.UnixGroupInfo[]</ReturnType>
495       </ReturnValue>
496       <Parameters />
497       <Docs>
498         <summary>Gets the current group access list.</summary>
499         <returns>
500           A <see cref="T:Mono.Unix.UnixGroupInfo" /> array containing
501           information about the group access list of the current process.
502         </returns>
503         <remarks>
504           <para>
505             The group access list is a list of groups which the current
506             process belongs to.  These groups are used for file access checks
507             when the 
508             <see cref="P:Mono.Unix.UnixEnvironment.RealUser" /> is not the
509             file's
510             <see cref="P:Mono.Unix.UnixFileSystemInfo.OwnerUser" />; each of
511             the supplementary groups is checked against
512             <see cref="P:Mono.Unix.UnixFileSystemInfo.OwnerGroup" /> to see if
513             group access applies, before using the  "other"
514             <see cref="P:Mono.Unix.UnixFileSystemInfo.FileAccessPermissions" />.
515           </para>
516         </remarks>
517         <altmember cref="M:Mono.Unix.Native.Syscall.getgroups" />
518       </Docs>
519     </Member>
520     <Member MemberName="GetUserShells">
521       <MemberSignature Language="C#" Value="public static string[] GetUserShells ();" />
522       <MemberSignature Language="ILAsm" Value=".method public static hidebysig string[] GetUserShells() cil managed" />
523       <MemberType>Method</MemberType>
524       <AssemblyInfo>
525         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
526         <AssemblyVersion>2.0.0.0</AssemblyVersion>
527         <AssemblyVersion>4.0.0.0</AssemblyVersion>
528       </AssemblyInfo>
529       <ReturnValue>
530         <ReturnType>System.String[]</ReturnType>
531       </ReturnValue>
532       <Parameters />
533       <Docs>
534         <summary>Gets all user shells.</summary>
535         <returns>
536           A <see cref="T:System.String" /> array containing all user shells on
537           the system.
538         </returns>
539         <remarks>
540           <para>
541             A user shell is defined by the system manager in the shells
542             database as described in <c>shells</c>(5) (frequently the file
543             <c>/etc/shells</c>).  If the shells database is not available,
544             then this returns an array containing the elements <c>/bin/sh</c>
545             and <c>/bin/csh</c>.
546           </para>
547         </remarks>
548         <altmember cref="M:Mono.Unix.Native.Syscall.setusershell" />
549         <altmember cref="M:Mono.Unix.Native.Syscall.getusershell" />
550         <altmember cref="M:Mono.Unix.Native.Syscall.endusershell" />
551       </Docs>
552     </Member>
553     <Member MemberName="Login">
554       <MemberSignature Language="C#" Value="public static string Login { get; }" />
555       <MemberSignature Language="ILAsm" Value=".property string Login" />
556       <MemberType>Property</MemberType>
557       <AssemblyInfo>
558         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
559         <AssemblyVersion>2.0.0.0</AssemblyVersion>
560         <AssemblyVersion>4.0.0.0</AssemblyVersion>
561       </AssemblyInfo>
562       <ReturnValue>
563         <ReturnType>System.String</ReturnType>
564       </ReturnValue>
565       <Docs>
566         <summary>Gets the login name.</summary>
567         <value>
568           A <see cref="T:System.String" /> containing the login name of the
569           user executing the process.
570         </value>
571         <remarks>
572           <para>
573             This is identical to 
574             <see cref="P:Mono.Unix.UnixEnvironment.UserName" />.
575           </para>
576         </remarks>
577       </Docs>
578     </Member>
579     <Member MemberName="MachineName">
580       <MemberSignature Language="C#" Value="public static string MachineName { get; set; }" />
581       <MemberSignature Language="ILAsm" Value=".property string MachineName" />
582       <MemberType>Property</MemberType>
583       <AssemblyInfo>
584         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
585         <AssemblyVersion>2.0.0.0</AssemblyVersion>
586         <AssemblyVersion>4.0.0.0</AssemblyVersion>
587       </AssemblyInfo>
588       <ReturnValue>
589         <ReturnType>System.String</ReturnType>
590       </ReturnValue>
591       <Docs>
592         <summary>Gets or sets the machine name of the machine the process is
593           running on.</summary>
594         <value>
595           A <see cref="T:System.String" /> containing the machine name.
596         </value>
597         <remarks>
598           <para>
599             Only the super-user can change the machine name.
600           </para>
601         </remarks>
602         <exception cref="System.InvalidOperationException">
603           <para>
604             The caller tried to set the host name and was not the super-user.
605             [<see cref="F:Mono.Unix.Native.Errno.EPERM" />]
606           </para>
607         </exception>
608         <altmember cref="M:Mono.Unix.Native.Syscall.gethostname" />
609         <altmember cref="M:Mono.Unix.Native.Syscall.sethostname" />
610       </Docs>
611     </Member>
612     <Member MemberName="RealGroup">
613       <MemberSignature Language="C#" Value="public static Mono.Unix.UnixGroupInfo RealGroup { get; }" />
614       <MemberSignature Language="ILAsm" Value=".property class Mono.Unix.UnixGroupInfo RealGroup" />
615       <MemberType>Property</MemberType>
616       <AssemblyInfo>
617         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
618         <AssemblyVersion>2.0.0.0</AssemblyVersion>
619         <AssemblyVersion>4.0.0.0</AssemblyVersion>
620       </AssemblyInfo>
621       <ReturnValue>
622         <ReturnType>Mono.Unix.UnixGroupInfo</ReturnType>
623       </ReturnValue>
624       <Docs>
625         <summary>Gets information about the real group of the process.</summary>
626         <value>
627           A <see cref="T:Mono.Unix.UnixGroupInfo" /> containing information
628           about the real group of the process.
629         </value>
630         <remarks>
631           <para>
632             The real group is the group of the user who invoked the program.
633           </para>
634         </remarks>
635         <altmember cref="M:Mono.Unix.UnixEnvironment.EffectiveGroup" />
636         <altmember cref="M:Mono.Unix.UnixEnvironment.EffectiveUser" />
637         <altmember cref="M:Mono.Unix.UnixEnvironment.RealUser" />
638         <altmember cref="M:Mono.Unix.Native.Syscall.getgid" />
639       </Docs>
640     </Member>
641     <Member MemberName="RealGroupId">
642       <MemberSignature Language="C#" Value="public static long RealGroupId { get; }" />
643       <MemberSignature Language="ILAsm" Value=".property int64 RealGroupId" />
644       <MemberType>Property</MemberType>
645       <AssemblyInfo>
646         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
647         <AssemblyVersion>2.0.0.0</AssemblyVersion>
648         <AssemblyVersion>4.0.0.0</AssemblyVersion>
649       </AssemblyInfo>
650       <ReturnValue>
651         <ReturnType>System.Int64</ReturnType>
652       </ReturnValue>
653       <Docs>
654         <summary>Gets the real group ID of the process.</summary>
655         <value>
656           A <see cref="T:System.Int64" /> containing the real group ID of the
657           process.
658         </value>
659         <remarks>
660           <para>
661             The real group ID is the group of the user who invoked the program.
662           </para>
663         </remarks>
664         <altmember cref="M:Mono.Unix.UnixEnvironment.EffectiveGroupId" />
665         <altmember cref="M:Mono.Unix.UnixEnvironment.EffectiveUserId" />
666         <altmember cref="M:Mono.Unix.UnixEnvironment.RealUserId" />
667         <altmember cref="M:Mono.Unix.Native.Syscall.getgid" />
668       </Docs>
669     </Member>
670     <Member MemberName="RealUser">
671       <MemberSignature Language="C#" Value="public static Mono.Unix.UnixUserInfo RealUser { get; }" />
672       <MemberSignature Language="ILAsm" Value=".property class Mono.Unix.UnixUserInfo RealUser" />
673       <MemberType>Property</MemberType>
674       <AssemblyInfo>
675         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
676         <AssemblyVersion>2.0.0.0</AssemblyVersion>
677         <AssemblyVersion>4.0.0.0</AssemblyVersion>
678       </AssemblyInfo>
679       <ReturnValue>
680         <ReturnType>Mono.Unix.UnixUserInfo</ReturnType>
681       </ReturnValue>
682       <Docs>
683         <summary>Gets information about the real user of the process.</summary>
684         <value>
685           A <see cref="T:Mono.Unix.UnixUserInfo" /> containing information
686           about the real user of the process.
687         </value>
688         <remarks>
689           <para>
690             The real user is the user who invoked the program.
691           </para>
692         </remarks>
693         <altmember cref="M:Mono.Unix.UnixEnvironment.EffectiveGroup" />
694         <altmember cref="M:Mono.Unix.UnixEnvironment.EffectiveUser" />
695         <altmember cref="M:Mono.Unix.UnixEnvironment.RealGroup" />
696         <altmember cref="M:Mono.Unix.Native.Syscall.getuid" />
697       </Docs>
698     </Member>
699     <Member MemberName="RealUserId">
700       <MemberSignature Language="C#" Value="public static long RealUserId { get; }" />
701       <MemberSignature Language="ILAsm" Value=".property int64 RealUserId" />
702       <MemberType>Property</MemberType>
703       <AssemblyInfo>
704         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
705         <AssemblyVersion>2.0.0.0</AssemblyVersion>
706         <AssemblyVersion>4.0.0.0</AssemblyVersion>
707       </AssemblyInfo>
708       <ReturnValue>
709         <ReturnType>System.Int64</ReturnType>
710       </ReturnValue>
711       <Docs>
712         <summary>Gets the real user ID of the process.</summary>
713         <value>
714           A <see cref="T:System.Int64" /> containing the real user ID of the
715           process.
716         </value>
717         <remarks>
718           <para>
719             The real user ID is that of the user who invoked the program.
720           </para>
721         </remarks>
722         <altmember cref="M:Mono.Unix.UnixEnvironment.EffectiveGroupId" />
723         <altmember cref="M:Mono.Unix.UnixEnvironment.EffectiveUserId" />
724         <altmember cref="M:Mono.Unix.UnixEnvironment.RealGroupId" />
725         <altmember cref="M:Mono.Unix.Native.Syscall.getuid" />
726       </Docs>
727     </Member>
728     <Member MemberName="SetNiceValue">
729       <MemberSignature Language="C#" Value="public static void SetNiceValue (int inc);" />
730       <MemberSignature Language="ILAsm" Value=".method public static hidebysig void SetNiceValue(int32 inc) cil managed" />
731       <MemberType>Method</MemberType>
732       <AssemblyInfo>
733         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
734         <AssemblyVersion>2.0.0.0</AssemblyVersion>
735         <AssemblyVersion>4.0.0.0</AssemblyVersion>
736       </AssemblyInfo>
737       <ReturnValue>
738         <ReturnType>System.Void</ReturnType>
739       </ReturnValue>
740       <Parameters>
741         <Parameter Name="inc" Type="System.Int32" />
742       </Parameters>
743       <Docs>
744         <param name="inc">
745           A <see cref="T:System.Int32" /> containing the value to add to the
746           current process' <i>nice value</i>.
747         </param>
748         <summary>Subtraces <paramref name="inc" /> from the process' priority.</summary>
749         <remarks>
750           <para>
751             The process' <i>nice value</i> is a value subtraced from the 
752             process' priority.  The higher the value of 
753             <paramref name="inc" />, the lower the priority of the process
754           </para>
755         </remarks>
756         <exception cref="T:Mono.Unix.UnixIOException">
757           <paramref name="inc" /> is negative but the caller is not the
758           super-user.
759           [<see cref="F:Mono.Unix.Native.Errno.EPERM" />]
760         </exception>
761         <altmember cref="M:Mono.Unix.Native.Syscall.nice" />
762       </Docs>
763     </Member>
764     <Member MemberName="SetProcessGroup">
765       <MemberSignature Language="C#" Value="public static void SetProcessGroup ();" />
766       <MemberSignature Language="ILAsm" Value=".method public static hidebysig void SetProcessGroup() cil managed" />
767       <MemberType>Method</MemberType>
768       <AssemblyInfo>
769         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
770         <AssemblyVersion>2.0.0.0</AssemblyVersion>
771         <AssemblyVersion>4.0.0.0</AssemblyVersion>
772       </AssemblyInfo>
773       <ReturnValue>
774         <ReturnType>System.Void</ReturnType>
775       </ReturnValue>
776       <Parameters />
777       <Docs>
778         <summary>Set the process group of the current process.</summary>
779         <remarks>
780           <para>
781             If the affected process is not the invoking process, then it must 
782             be a child of the invoking process, and both processes must be in 
783             the same session.
784           </para>
785         </remarks>
786         <exception cref="System.InvalidOperationException">
787           <para>
788             The target process is a session leader.
789             [<see cref="F:Mono.Unix.Native.Errno.EPERM" />]
790           </para>
791         </exception>
792         <exception cref="Mono.Unix.UnixIOException">
793           <para>
794             The target process is not the calling process or
795             a child of the calling process.
796             [<see cref="F:Mono.Unix.Native.Errno.ESRCH" />]
797           </para>
798           <para>-or-</para>
799           <para>
800             The requested process is a child of the calling process,
801             but it has performed an
802             <see cref="F:Mono.Unix.Native.Syscall.exec" />(3)
803             operation.
804             [<see cref="F:Mono.Unix.Native.Errno.EACCES" />]
805           </para>
806         </exception>
807         <altmember cref="P:Mono.Unix.UnixProcess.ProcessGroupId" />
808         <altmember cref="M:Mono.Unix.Native.Syscall.setpgrp" />
809       </Docs>
810     </Member>
811     <Member MemberName="SetSupplementaryGroupIds">
812       <MemberSignature Language="C#" Value="public static void SetSupplementaryGroupIds (long[] list);" />
813       <MemberSignature Language="ILAsm" Value=".method public static hidebysig void SetSupplementaryGroupIds(int64[] list) cil managed" />
814       <MemberType>Method</MemberType>
815       <AssemblyInfo>
816         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
817         <AssemblyVersion>2.0.0.0</AssemblyVersion>
818         <AssemblyVersion>4.0.0.0</AssemblyVersion>
819       </AssemblyInfo>
820       <ReturnValue>
821         <ReturnType>System.Void</ReturnType>
822       </ReturnValue>
823       <Parameters>
824         <Parameter Name="list" Type="System.Int64[]" />
825       </Parameters>
826       <Docs>
827         <param name="list">
828           A <see cref="T:System.Int64" /> array containing the
829           new group access list.
830         </param>
831         <summary>
832           Set the group access list of the current process.
833         </summary>
834         <remarks>
835           <para>
836             Only the super-user may set new groups.
837           </para>
838           <para>
839             The group access list is a list of groups which the current
840             process belongs to.  These groups are used for file access checks
841             when the 
842             <see cref="P:Mono.Unix.UnixEnvironment.RealUser" /> is not the
843             file's
844             <see cref="P:Mono.Unix.UnixFileSystemInfo.OwnerUser" />; each of
845             the supplementary groups is checked against
846             <see cref="P:Mono.Unix.UnixFileSystemInfo.OwnerGroup" /> to see if
847             group access applies, before using the  "other"
848             <see cref="P:Mono.Unix.UnixFileSystemInfo.FileAccessPermissions" />.
849           </para>
850         </remarks>
851         <exception cref="System.InvalidOperationException">
852           <para>
853             The caller is not the super-user.
854             [<see cref="F:Mono.Unix.Native.Errno.EPERM" />]
855           </para>
856         </exception>
857         <altmember cref="M:Mono.Unix.Native.Syscall.setgroups" />
858       </Docs>
859     </Member>
860     <Member MemberName="SetSupplementaryGroups">
861       <MemberSignature Language="C#" Value="public static void SetSupplementaryGroups (Mono.Unix.UnixGroupInfo[] groups);" />
862       <MemberSignature Language="ILAsm" Value=".method public static hidebysig void SetSupplementaryGroups(class Mono.Unix.UnixGroupInfo[] groups) cil managed" />
863       <MemberType>Method</MemberType>
864       <AssemblyInfo>
865         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
866         <AssemblyVersion>2.0.0.0</AssemblyVersion>
867         <AssemblyVersion>4.0.0.0</AssemblyVersion>
868       </AssemblyInfo>
869       <ReturnValue>
870         <ReturnType>System.Void</ReturnType>
871       </ReturnValue>
872       <Parameters>
873         <Parameter Name="groups" Type="Mono.Unix.UnixGroupInfo[]" />
874       </Parameters>
875       <Docs>
876         <param name="groups">
877           A <see cref="T:Mono.Unix.UnixGroupInfo" /> array containing the
878           new group access list.
879         </param>
880         <summary>
881           Set the group access list of the current process.
882         </summary>
883         <remarks>
884           <para>
885             Only the super-user may set new groups.
886           </para>
887           <para>
888             The group access list is a list of groups which the current
889             process belongs to.  These groups are used for file access checks
890             when the 
891             <see cref="P:Mono.Unix.UnixEnvironment.RealUser" /> is not the
892             file's
893             <see cref="P:Mono.Unix.UnixFileSystemInfo.OwnerUser" />; each of
894             the supplementary groups is checked against
895             <see cref="P:Mono.Unix.UnixFileSystemInfo.OwnerGroup" /> to see if
896             group access applies, before using the  "other"
897             <see cref="P:Mono.Unix.UnixFileSystemInfo.FileAccessPermissions" />.
898           </para>
899         </remarks>
900         <exception cref="System.InvalidOperationException">
901           <para>
902             The caller is not the super-user.
903             [<see cref="F:Mono.Unix.Native.Errno.EPERM" />]
904           </para>
905         </exception>
906         <altmember cref="M:Mono.Unix.Native.Syscall.setgroups" />
907       </Docs>
908     </Member>
909     <Member MemberName="UserName">
910       <MemberSignature Language="C#" Value="public static string UserName { get; }" />
911       <MemberSignature Language="ILAsm" Value=".property string UserName" />
912       <MemberType>Property</MemberType>
913       <AssemblyInfo>
914         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
915         <AssemblyVersion>2.0.0.0</AssemblyVersion>
916         <AssemblyVersion>4.0.0.0</AssemblyVersion>
917       </AssemblyInfo>
918       <ReturnValue>
919         <ReturnType>System.String</ReturnType>
920       </ReturnValue>
921       <Docs>
922         <summary>Gets the user name of the user executing the process.</summary>
923         <value>
924           A <see cref="T:System.String" /> containing the username of the user
925           executing the process.
926         </value>
927         <remarks>
928           <para>
929             This is the username of the <i>real</i> user id.
930           </para>
931           <para>
932             This is equivalent to calling
933             <see cref="P:Mono.Unix.UnixEnvironment.RealUser" />.<see cref="P:Mono.Unix.UnixUserInfo.UserName" />.
934           </para>
935         </remarks>
936       </Docs>
937     </Member>
938   </Members>
939 </Type>