File: src\libraries\System.Private.CoreLib\src\System\Environment.Unix.cs
Web Access
Project: src\src\coreclr\System.Private.CoreLib\System.Private.CoreLib.csproj (System.Private.CoreLib)
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
 
using System.Diagnostics;
using System.IO;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading;
 
namespace System
{
    public static partial class Environment
    {
        public static string[] GetLogicalDrives() => Interop.Sys.GetAllMountPoints();
 
        public static string MachineName
        {
            get
            {
                string hostName = Interop.Sys.GetHostName();
                int dotPos = hostName.IndexOf('.');
                return dotPos < 0 ? hostName : hostName.Substring(0, dotPos);
            }
        }
 
        public static string UserName => Interop.Sys.GetUserNameFromPasswd(Interop.Sys.GetEUid());
 
        private static bool IsPrivilegedProcessCore() => Interop.Sys.GetEUid() == 0;
 
        [MethodImplAttribute(MethodImplOptions.NoInlining)] // Avoid inlining PInvoke frame into the hot path
        private static int GetProcessId() => Interop.Sys.GetPid();
 
        [MethodImplAttribute(MethodImplOptions.NoInlining)] // Avoid inlining PInvoke frame into the hot path
        private static string? GetProcessPath() => Interop.Sys.GetProcessPath();
 
        private static string[] GetCommandLineArgsNative()
        {
            // This is only used for delegate created from native host
 
            // Consider to use /proc/self/cmdline to get command line
            return Array.Empty<string>();
        }
    }
}